diff --git a/AUTOPLUG2/git/shared.lua b/AUTOPLUG2/git/shared.lua index 9c55dd8e..928b7ea8 100644 --- a/AUTOPLUG2/git/shared.lua +++ b/AUTOPLUG2/git/shared.lua @@ -4,5 +4,5 @@ APP_PROJECT = "AutoPlugin2" APP_FOLDER = "AUTOPLUG2" APP_VERSION_MAJOR = 0x01 -- major.minor -APP_VERSION_MINOR = 0x03 +APP_VERSION_MINOR = 0x04 APP_VERSION = ((APP_VERSION_MAJOR << 0x18) | (APP_VERSION_MINOR << 0x10)) -- Union Binary diff --git a/AUTOPLUG2/lang/CHINESE_S.lua b/AUTOPLUG2/lang/CHINESE_S.lua index e2c9dfb0..0d174573 100644 --- a/AUTOPLUG2/lang/CHINESE_S.lua +++ b/AUTOPLUG2/lang/CHINESE_S.lua @@ -190,7 +190,8 @@ CHINESE_S["TRANSIMPOSE_LEVEL"] = "设置级别" --Translate CHINESE_S["TRANSLATE_ENGLISH_TITLE"] = "英文方案: " -CHINESE_S["TRANSLATE_CURRENT_TITLE"] = "当前方案: " +CHINESE_S["TRANSLATE_CURRENT_TITLE"] = "System Language: " +CHINESE_S["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " CHINESE_S["TRANSLATE_YOUR_TITLE"] = "您的方案: " CHINESE_S["SAVE_TRANSLATIONS"] = "保存翻译" CHINESE_S["EXIT_SAVE_TRANSLATIONS"] = "翻译尚未保存. 是否在退出前保存?" @@ -327,6 +328,7 @@ CHINESE_S["INSTALLP_DESC_QASCREEN"] = "适用于 PSVita 的高 CHINESE_S["INSTALLP_DESC_NOSHAREDFB"] = "对于在系统模式下运行但使用标准帧缓冲实现的自制应用程序,允许您在挂起恢复周期之后绕过共享的帧缓冲问题的插件." CHINESE_S["INSTALLP_DESC_TRIMPOSE"] = "PS Vita 插件,用于使强制菜单 (长按 PS 按钮出现的那个) 透明." CHINESE_S["INSTALLP_DESC_QUIETSHOT"] = "在截屏,录像,拍照及拍摄全景照时,关闭快门音效.适用于 Playstation Vita 以及 PlayStation TV." +CHINESE_S["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL CHINESE_S["INSTALLP_DESC_YAMT"] = "适用于 PSVita/PSTV 的又一款分区重新挂载内核插件 (依赖 Enso, 仅兼容 3.60 及 3.65 固件)" @@ -356,6 +358,7 @@ CHINESE_S["INSTALLP_DESC_TRACKPLUGMOD"] = "适用于 PSV 的游戏 CHINESE_S["INSTALLP_DESC_PSONESCROT"] = "为PS1游戏拍摄PNG格式截屏. [在快捷菜单中打开设置,如果使用 Adrenaline 请打开官方设置,选择截屏(screenshot)]" CHINESE_S["INSTALLP_DESC_CPUAFFCHANGER"] = "此插件将 PSVita 系统应用程序的 CPU 亲和力掩码指定为所有用户核心,从而提高程序的性能." CHINESE_S["INSTALLP_DESC_SHARPSCALE"] = "此插件令 PSTV 支持原生 960x544 HDMI 输出." +CHINESE_S["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 CHINESE_S["INSTALLP_DESC_PS4LINK"] = "大变革插件,用于强制选择喜欢的遥控操作按键配置方案" diff --git a/AUTOPLUG2/lang/ENGLISH_US.lua b/AUTOPLUG2/lang/ENGLISH_US.lua index 1b4b26e1..db33dd17 100644 --- a/AUTOPLUG2/lang/ENGLISH_US.lua +++ b/AUTOPLUG2/lang/ENGLISH_US.lua @@ -190,7 +190,8 @@ ENGLISH_US["TRANSIMPOSE_LEVEL"] = "Level Set" --Translate ENGLISH_US["TRANSLATE_ENGLISH_TITLE"] = "English: " -ENGLISH_US["TRANSLATE_CURRENT_TITLE"] = "Current: " +ENGLISH_US["TRANSLATE_CURRENT_TITLE"] = "System Language: " +ENGLISH_US["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " ENGLISH_US["TRANSLATE_YOUR_TITLE"] = "Yours: " ENGLISH_US["SAVE_TRANSLATIONS"] = "Save Translations" ENGLISH_US["EXIT_SAVE_TRANSLATIONS"] = "Translation not saved. Save before exiting?" @@ -327,6 +328,7 @@ ENGLISH_US["INSTALLP_DESC_QASCREEN"] = "High quality screenshot ENGLISH_US["INSTALLP_DESC_NOSHAREDFB"] = "Allows you to bypass shared framebuffer issues after suspend-resume cycle for homebrew applications that run in system mode. but use standard framebuffer implementation." ENGLISH_US["INSTALLP_DESC_TRIMPOSE"] = "Plugin for PS Vita that makes impose menu (the one that appears after long PS button press) transparent." ENGLISH_US["INSTALLP_DESC_QUIETSHOT"] = "Silences the shutter sound when taking a screenshot, photo, video, or panoramic photo. Works on both the Playstation Vita and PlayStation TV." +ENGLISH_US["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL ENGLISH_US["INSTALLP_DESC_YAMT"] = "Yet another (re)mount tool kernel plugin for PSVita/PSTV (Requires Enso, compatible ONLY with firmware 3.60 and 3.65" @@ -356,6 +358,7 @@ ENGLISH_US["INSTALLP_DESC_TRACKPLUGMOD"] = "Playtime tracker plugin ENGLISH_US["INSTALLP_DESC_PSONESCROT"] = "Take proper PNG screenshots for PS1 games (Open settings in the quick menu, Open official settings if using adrenaline, Select screenshot)." ENGLISH_US["INSTALLP_DESC_CPUAFFCHANGER"] = "This plugin changes CPU affinity mask of PS Vita system applications to all user core,which increases their performance." ENGLISH_US["INSTALLP_DESC_SHARPSCALE"] = "Native 960x544 HDMI output for PSTV." +ENGLISH_US["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 ENGLISH_US["INSTALLP_DESC_PS4LINK"] = "taiHEN plugin that allows to force preferred Remote Play button configuration" diff --git a/AUTOPLUG2/lang/FRENCH.lua b/AUTOPLUG2/lang/FRENCH.lua index 5ef2e64a..9b81abd5 100644 --- a/AUTOPLUG2/lang/FRENCH.lua +++ b/AUTOPLUG2/lang/FRENCH.lua @@ -190,7 +190,8 @@ FRENCH["TRANSIMPOSE_LEVEL"] = "Définition du niveau de tr --Translate FRENCH["TRANSLATE_ENGLISH_TITLE"] = "Anglais : " -FRENCH["TRANSLATE_CURRENT_TITLE"] = "Actuel : " +FRENCH["TRANSLATE_CURRENT_TITLE"] = "System Language: " +FRENCH["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " FRENCH["TRANSLATE_YOUR_TITLE"] = "Le votre: " FRENCH["SAVE_TRANSLATIONS"] = "Enregistrer la traduction" FRENCH["EXIT_SAVE_TRANSLATIONS"] = "Traduction non enregistré. Enregistrer avant de quitter ?" @@ -327,6 +328,7 @@ FRENCH["INSTALLP_DESC_QASCREEN"] = "Plugin de capture d'écran FRENCH["INSTALLP_DESC_NOSHAREDFB"] = "Permet de contourner les problèmes de framebuffer partagé après le cycle de mise en veille-reprise pour les applications et homebrews qui s'exécutent en mode système, mais utilisent une implémentation de framebuffer standard." FRENCH["INSTALLP_DESC_TRIMPOSE"] = "Plugin pour PS Vita qui rend le menu imposé (celui qui apparaît après une longue pression sur le bouton PS) transparent." FRENCH["INSTALLP_DESC_QUIETSHOT"] = "Désactive le son de l'obturateur lors de la prise d'une capture d'écran, d'une photo, d'une vidéo ou d'une photo panoramique. Fonctionne à la fois sur la Playstation Vita et la PlayStation TV." +FRENCH["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL FRENCH["INSTALLP_DESC_YAMT"] = "Encore un autre plugin Kernel de l'outil de (re)montage pour PSVita/PSTV (nécessite Enso, compatible UNIQUEMENT avec les firmware 3.60 et 3.65" @@ -356,6 +358,7 @@ FRENCH["INSTALLP_DESC_TRACKPLUGMOD"] = "Plugin PSVita qui calcule l FRENCH["INSTALLP_DESC_PSONESCROT"] = "Faites des captures d'écran PNG appropriées pour les jeux PS1 (Ouvrez les paramètres dans le menu rapide, Ouvrez les paramètres officiels si vous utilisez l'adrénaline, Sélectionnez la capture d'écran)." FRENCH["INSTALLP_DESC_CPUAFFCHANGER"] = "Ce plugin modifie le masque d'affinité de l'unité centrale des applications du système PS Vita pour tous les noyaux d'utilisateurs, ce qui augmente leurs performances." FRENCH["INSTALLP_DESC_SHARPSCALE"] = "Sortie HDMI 960x544 pour les PSTV." +FRENCH["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 FRENCH["INSTALLP_DESC_PS4LINK"] = "plugin taiHEN qui permet de forcer la configuration préférée des boutons de lecture à distance" diff --git a/AUTOPLUG2/lang/GERMAN.lua b/AUTOPLUG2/lang/GERMAN.lua index bd280c2e..baf67da1 100644 --- a/AUTOPLUG2/lang/GERMAN.lua +++ b/AUTOPLUG2/lang/GERMAN.lua @@ -190,7 +190,8 @@ GERMAN["TRANSIMPOSE_LEVEL"] = "Tranzparenzstufe eingestell --Translate GERMAN["TRANSLATE_ENGLISH_TITLE"] = "Englisch: " -GERMAN["TRANSLATE_CURRENT_TITLE"] = "Aktuell: " +GERMAN["TRANSLATE_CURRENT_TITLE"] = "System Language: " +GERMAN["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " GERMAN["TRANSLATE_YOUR_TITLE"] = "Deine: " GERMAN["SAVE_TRANSLATIONS"] = "Übersetzung speichern" GERMAN["EXIT_SAVE_TRANSLATIONS"] = "Übersetzung nicht gespeichert. Vor dem verlassen Speichern?" @@ -327,6 +328,7 @@ GERMAN["INSTALLP_DESC_QASCREEN"] = "Hochwertiges Screenshot Plu GERMAN["INSTALLP_DESC_NOSHAREDFB"] = "Ermöglicht das Umgehen von Problemen mit gemeinsam genutzten Bildspeichern nach dem Anhalten des Wiederaufnahmezyklus für Homebrew Anwendungen, die im Systemmodus ausgeführt werden. Verwenden Sie jedoch die Standard Bildspeicher Implementierung." GERMAN["INSTALLP_DESC_TRIMPOSE"] = "Ein Plugin für PS Vita, dass das Schnellmenü (das nach langem Drücken der PS-Taste angezeigt wird) transparent macht." GERMAN["INSTALLP_DESC_QUIETSHOT"] = "Silences the shutter sound when taking a screenshot, photo, video, or panoramic photo. Works on both the Playstation Vita and PlayStation TV." +GERMAN["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL GERMAN["INSTALLP_DESC_YAMT"] = "Ein anderes Kernel Plugin um den Speicher einer Partition zu zuweisen, für PSVita/PSTV (Benötigt Enso, NUR mit der Firmware 3.60 und 3.65" @@ -356,6 +358,7 @@ GERMAN["INSTALLP_DESC_TRACKPLUGMOD"] = "Playtime tracker plugin for GERMAN["INSTALLP_DESC_PSONESCROT"] = "Take proper PNG screenshots for PS1 games (Open settings in the quick menu, Open official settings if using adrenaline, Select screenshot)." GERMAN["INSTALLP_DESC_CPUAFFCHANGER"] = "This plugin changes CPU affinity mask of PS Vita system applications to all user core,which increases their performance." GERMAN["INSTALLP_DESC_SHARPSCALE"] = "Native 960x544 HDMI output for PSTV." +GERMAN["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 GERMAN["INSTALLP_DESC_PS4LINK"] = "taiHEN Plugin, mit dem die bevorzugte Tasten Konfiguration für Remote Play erzwungen werden kann." diff --git a/AUTOPLUG2/lang/ITALIAN.lua b/AUTOPLUG2/lang/ITALIAN.lua index 9faa5cff..9498f230 100644 --- a/AUTOPLUG2/lang/ITALIAN.lua +++ b/AUTOPLUG2/lang/ITALIAN.lua @@ -190,7 +190,8 @@ ITALIAN["TRANSIMPOSE_LEVEL"] = "Modifica livello" --Translate ITALIAN["TRANSLATE_ENGLISH_TITLE"] = "Inglese: " -ITALIAN["TRANSLATE_CURRENT_TITLE"] = "Attuale: " +ITALIAN["TRANSLATE_CURRENT_TITLE"] = "System Language: " +ITALIAN["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " ITALIAN["TRANSLATE_YOUR_TITLE"] = "La tua traduzione: " ITALIAN["SAVE_TRANSLATIONS"] = "Salva le traduzioni" ITALIAN["EXIT_SAVE_TRANSLATIONS"] = "Traduzione non salvata. Salvare prima di uscire?" @@ -327,6 +328,7 @@ ITALIAN["INSTALLP_DESC_QASCREEN"] = "Plugin che permette di ITALIAN["INSTALLP_DESC_NOSHAREDFB"] = "Consente di aggirare i problemi di framebuffer condivisi dopo il ciclo di sospensione/ripresa per le applicazioni homebrew eseguite in modalità di sistema. ma usa l'implementazione standard di framebuffer." ITALIAN["INSTALLP_DESC_TRIMPOSE"] = "Plugin per PS Vita che rende trasparente il menu RAPIDO (quello che appare dopo aver premuto a lungo il pulsante PS)." ITALIAN["INSTALLP_DESC_QUIETSHOT"] = "Silenzia il suono di default quando si scatta uno screenshot, una foto, un video o una foto panoramica. Funziona sia su Playstation Vita che su PlayStation TV." +ITALIAN["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL ITALIAN["INSTALLP_DESC_YAMT"] = "Ancora un altro plugin(SD2VITA) per PSVita/PSTV (richiede Enso, compatibile SOLO con firmware 3.60 e 3.65)" @@ -356,6 +358,7 @@ ITALIAN["INSTALLP_DESC_TRACKPLUGMOD"] = "Semplice plugin che ti ITALIAN["INSTALLP_DESC_PSONESCROT"] = "Take proper PNG screenshots for PS1 games (Open settings in the quick menu, Open official settings if using adrenaline, Select screenshot)." ITALIAN["INSTALLP_DESC_CPUAFFCHANGER"] = "This plugin changes CPU affinity mask of PS Vita system applications to all user core,which increases their performance." ITALIAN["INSTALLP_DESC_SHARPSCALE"] = "Native 960x544 HDMI output for PSTV." +ITALIAN["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 ITALIAN["INSTALLP_DESC_PS4LINK"] = "Questo plugin consente di forzare la configurazione preferita del pulsante di Riproduzione remota" diff --git a/AUTOPLUG2/lang/JAPANESE.lua b/AUTOPLUG2/lang/JAPANESE.lua index 006ebd0c..525a7cd6 100644 --- a/AUTOPLUG2/lang/JAPANESE.lua +++ b/AUTOPLUG2/lang/JAPANESE.lua @@ -190,7 +190,8 @@ JAPANESE["TRANSIMPOSE_LEVEL"] = "Level Set" --Translate JAPANESE["TRANSLATE_ENGLISH_TITLE"] = "英語: " -JAPANESE["TRANSLATE_CURRENT_TITLE"] = "現在: " +JAPANESE["TRANSLATE_CURRENT_TITLE"] = "System Language: " +JAPANESE["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " JAPANESE["TRANSLATE_YOUR_TITLE"] = "Yours: " JAPANESE["SAVE_TRANSLATIONS"] = "翻訳を保存" JAPANESE["EXIT_SAVE_TRANSLATIONS"] = "翻訳内容は保存されませんでした。 終了する前に保存しますか?" @@ -327,6 +328,7 @@ JAPANESE["INSTALLP_DESC_QASCREEN"] = "PSVita用の高品質 JAPANESE["INSTALLP_DESC_NOSHAREDFB"] = "システムモードで実行される自作アプリケーションのサスペンドと再開のサイクル後、共有フレームバッファの問題を回避できます。 ただし、標準のフレームバッファ実装を使用します" JAPANESE["INSTALLP_DESC_TRIMPOSE"] = "長押しメニュー(PSボタンを長く押した後に表示されるメニュー)を透明にするPSVitaのプラグイン" JAPANESE["INSTALLP_DESC_QUIETSHOT"] = "Silences the shutter sound when taking a screenshot, photo, video, or panoramic photo. Works on both the Playstation Vita and PlayStation TV." +JAPANESE["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL JAPANESE["INSTALLP_DESC_YAMT"] = "PSVita/PSTV用の別の(再)マウントツールカーネルプラグイン (Ensoが必要、ファームウェア3.60および3.65とのみ互換性あり)" @@ -356,6 +358,7 @@ JAPANESE["INSTALLP_DESC_TRACKPLUGMOD"] = "Playtime tracker plugin JAPANESE["INSTALLP_DESC_PSONESCROT"] = "Take proper PNG screenshots for PS1 games (Open settings in the quick menu, Open official settings if using adrenaline, Select screenshot)." JAPANESE["INSTALLP_DESC_CPUAFFCHANGER"] = "This plugin changes CPU affinity mask of PS Vita system applications to all user core,which increases their performance." JAPANESE["INSTALLP_DESC_SHARPSCALE"] = "Native 960x544 HDMI output for PSTV." +JAPANESE["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 JAPANESE["INSTALLP_DESC_PS4LINK"] = "優先リモート再生ボタンの設定を強制することができるtaiHENプラグイン" diff --git a/AUTOPLUG2/lang/Langdatabase.lua b/AUTOPLUG2/lang/Langdatabase.lua index 1eb8506c..17efb548 100644 --- a/AUTOPLUG2/lang/Langdatabase.lua +++ b/AUTOPLUG2/lang/Langdatabase.lua @@ -1,11 +1,11 @@ Langs = { -{ id = "ENGLISH_US", version = "01.07", author = "Yoti" }, -{ id = "ITALIAN", version = "01.09", author = "TheHeroGAC" }, -{ id = "JAPANESE", version = "01.07", author = "Kouchan" }, -{ id = "SPANISH", version = "01.10", author = "gvaldebenit" }, -{ id = "CHINESE_S", version = "01.11", author = "yexun1995" }, -{ id = "FRENCH", version = "01.11", author = "Chronoss09" }, -{ id = "GERMAN", version = "01.07", author = "Schn1ek3" }, -{ id = "RUSSIAN", version = "01.10", author = "Yoti" }, -{ id = "POLISH", version = "01.06", author = "Gameplay World's" } +{ id = "ENGLISH_US", version = "01.08", author = "Yoti" }, +{ id = "ITALIAN", version = "01.10", author = "TheHeroGAC" }, +{ id = "JAPANESE", version = "01.08", author = "Kouchan" }, +{ id = "SPANISH", version = "01.11", author = "gvaldebenit" }, +{ id = "CHINESE_S", version = "01.12", author = "yexun1995" }, +{ id = "FRENCH", version = "01.12", author = "Chronoss09" }, +{ id = "GERMAN", version = "01.08", author = "Schn1ek3" }, +{ id = "RUSSIAN", version = "01.11", author = "Yoti" }, +{ id = "POLISH", version = "01.07", author = "Gameplay World's" }, } diff --git a/AUTOPLUG2/lang/POLISH.lua b/AUTOPLUG2/lang/POLISH.lua index 5d199a24..d4ad7874 100644 --- a/AUTOPLUG2/lang/POLISH.lua +++ b/AUTOPLUG2/lang/POLISH.lua @@ -190,7 +190,8 @@ POLISH["TRANSIMPOSE_LEVEL"] = "Level Set" --Translate POLISH["TRANSLATE_ENGLISH_TITLE"] = "Polski: " -POLISH["TRANSLATE_CURRENT_TITLE"] = "Obecny: " +POLISH["TRANSLATE_CURRENT_TITLE"] = "System Language: " +POLISH["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " POLISH["TRANSLATE_YOUR_TITLE"] = "Twoje: " POLISH["SAVE_TRANSLATIONS"] = "Zapisano tłumaczenie" POLISH["EXIT_SAVE_TRANSLATIONS"] = "Tłumaczenie nie zapisane, czy napewno chcesz wyjść?" @@ -327,6 +328,7 @@ POLISH["INSTALLP_DESC_QASCREEN"] = "Wtyczka wysokiej jakości z POLISH["INSTALLP_DESC_NOSHAREDFB"] = "Pozwala ominąć wspólne problemy z buforowaniem ramki po cyklu zawieszenia-wznowienia dla aplikacji homebrew, które działają w trybie systemowym. Ale używa standardowej implementacji bufora ramki." POLISH["INSTALLP_DESC_TRIMPOSE"] = "Wtyczka do PS Vita, która sprawia, że nakładka menu (to, które pojawia się po długim naciśnięciu przycisku PS) jest przezroczyste." POLISH["INSTALLP_DESC_QUIETSHOT"] = "Silences the shutter sound when taking a screenshot, photo, video, or panoramic photo. Works on both the Playstation Vita and PlayStation TV." +POLISH["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL POLISH["INSTALLP_DESC_YAMT"] = "Yet another (re)mount tool kernel plugin for PSVita/PSTV (Requires Enso, compatible ONLY with firmware 3.60 and 3.65" @@ -356,6 +358,7 @@ POLISH["INSTALLP_DESC_TRACKPLUGMOD"] = "Playtime tracker plugin for POLISH["INSTALLP_DESC_PSONESCROT"] = "Take proper PNG screenshots for PS1 games (Open settings in the quick menu, Open official settings if using adrenaline, Select screenshot)." POLISH["INSTALLP_DESC_CPUAFFCHANGER"] = "This plugin changes CPU affinity mask of PS Vita system applications to all user core,which increases their performance." POLISH["INSTALLP_DESC_SHARPSCALE"] = "Native 960x544 HDMI output for PSTV." +POLISH["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 POLISH["INSTALLP_DESC_PS4LINK"] = "taiHEN plugin that allows to force preferred Remote Play button configuration" diff --git a/AUTOPLUG2/lang/RUSSIAN.lua b/AUTOPLUG2/lang/RUSSIAN.lua index 079487d8..934442f9 100644 --- a/AUTOPLUG2/lang/RUSSIAN.lua +++ b/AUTOPLUG2/lang/RUSSIAN.lua @@ -190,7 +190,8 @@ RUSSIAN["TRANSIMPOSE_LEVEL"] = "Применить уро --Translate RUSSIAN["TRANSLATE_ENGLISH_TITLE"] = "Английский: " -RUSSIAN["TRANSLATE_CURRENT_TITLE"] = "Сейчас выбран: " +RUSSIAN["TRANSLATE_CURRENT_TITLE"] = "System Language: " +RUSSIAN["TRANSLATE_CURRENT_AUTOPLUGIN"] = "AutoPlugin Language: " RUSSIAN["TRANSLATE_YOUR_TITLE"] = "Ваш: " RUSSIAN["SAVE_TRANSLATIONS"] = "Сохранить переводы" RUSSIAN["EXIT_SAVE_TRANSLATIONS"] = "Изменения не сохранены. Сохранить перед выходом?" @@ -327,6 +328,7 @@ RUSSIAN["INSTALLP_DESC_QASCREEN"] = "Плагин убирае RUSSIAN["INSTALLP_DESC_NOSHAREDFB"] = "Плагин обходит проблемы при использовании общего кадрового буфера в самописных приложениях, работающих в режиме системных" RUSSIAN["INSTALLP_DESC_TRIMPOSE"] = "Плагин позволяет настроить прозрачность фона быстрого меню" RUSSIAN["INSTALLP_DESC_QUIETSHOT"] = "Плагин отключает звук затвора камеры при создании скриншотов, создании обычного или панорамного снимка, а также записи видео. Поддерживается как PlayStation Vita, так и PlayStation TV." +RUSSIAN["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL RUSSIAN["INSTALLP_DESC_YAMT"] = "Удобный плагин для изменения точек монтирования устройств на прошивках 3.60 и 3.65 (необходим enso)" @@ -356,6 +358,7 @@ RUSSIAN["INSTALLP_DESC_TRACKPLUGMOD"] = "Плагин для под RUSSIAN["INSTALLP_DESC_PSONESCROT"] = "Создание снимков экрана без искажений в формате PNG в PS1 играх (Быстрое меню - Настройки - Снимок экрана)." RUSSIAN["INSTALLP_DESC_CPUAFFCHANGER"] = "Плагин переносит выполнение системных приложений на все ядра процессора, за счёт чего вырастает скорость запуска и работы" RUSSIAN["INSTALLP_DESC_SHARPSCALE"] = "Вывод родного разрешения 960x544 (в рамке) при выборе 720p и кратного масштабирования (с обрезкой нижних 8 строк) при выборе 1080i для PSTV" +RUSSIAN["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 RUSSIAN["INSTALLP_DESC_PS4LINK"] = "Плагин для принудительного выбора раскладки управления при использовании функции удалённой игры" diff --git a/AUTOPLUG2/lang/SPANISH.lua b/AUTOPLUG2/lang/SPANISH.lua index 80c3fcf5..4e0a5f61 100644 --- a/AUTOPLUG2/lang/SPANISH.lua +++ b/AUTOPLUG2/lang/SPANISH.lua @@ -190,7 +190,8 @@ SPANISH["TRANSIMPOSE_LEVEL"] = "Nivel establecido" --Translate SPANISH["TRANSLATE_ENGLISH_TITLE"] = "Inglés: " -SPANISH["TRANSLATE_CURRENT_TITLE"] = "Actual: " +SPANISH["TRANSLATE_CURRENT_TITLE"] = "Idioma del Sistema: " +SPANISH["TRANSLATE_CURRENT_AUTOPLUGIN"] = "Idioma AutoPlugin: " SPANISH["TRANSLATE_YOUR_TITLE"] = "Tuyo: " SPANISH["SAVE_TRANSLATIONS"] = "Guardar traducción" SPANISH["EXIT_SAVE_TRANSLATIONS"] = "Traducción no guardada. ¿Guardar antes de salir?" @@ -327,6 +328,7 @@ SPANISH["INSTALLP_DESC_QASCREEN"] = "Plugin para screenshots SPANISH["INSTALLP_DESC_NOSHAREDFB"] = "Permite evitar los problemas de framebuffer compartido en homebrew que corre en modo sistema, pero ocupa la implementación estandar de framebuffer, despues de un ciclo de suspender-resumir (3.60-3.68)" SPANISH["INSTALLP_DESC_TRIMPOSE"] = "Plugin para PS Vita que hace al al menú rápido (el que aparece al mantener presionado el botón PS) transparente" SPANISH["INSTALLP_DESC_QUIETSHOT"] = "Silencia el sonido de obsturador al momento de hacer un screenshot (captura de pantalla), foto, video, fotos panorámicas. Funciona en PS Vita y PSTV." +SPANISH["INSTALLP_DESC_FTPEVERYWHERE"] = "ftpeverywhere - Always running background FTP server plugin." --ALL SPANISH["INSTALLP_DESC_YAMT"] = "Otro Plugin de Kernel de (re)montaje para PS Vita/PlayStation TV (Requiere Enso, compatible SOLO con firmware 3.60 y 3.65" @@ -356,6 +358,7 @@ SPANISH["INSTALLP_DESC_TRACKPLUGMOD"] = "Plugin para hacer segui SPANISH["INSTALLP_DESC_PSONESCROT"] = "Tomar capturas de pantalla (.PNG) en juegos PSX de manera apropiada (PS + Start no funciona bien en juegos de PS1) (Abrir Ajustes en el menú rapido, Abrir Ajustes Oficial si estás usando Adrenaline, seleccionar Screenshot)" SPANISH["INSTALLP_DESC_CPUAFFCHANGER"] = "Este Plugin cambia la Mascara de Afinidad de la CPU (Un pequeño indicador para ligar los procesos a una CPU específica) de las Aplicaciones de Sistema de PS Vita a todos los Core de Usuarios, lo que permite mejorar su rendimiento" SPANISH["INSTALLP_DESC_SHARPSCALE"] = "Salida Nativa de 960x544 a través de HDMI en PSTV" +SPANISH["INSTALLP_DESC_RAPIDMENU"] = "Reduce quick menu open time from 2 seconds to 200 milliseconds." --*NPXS10013 SPANISH["INSTALLP_DESC_PS4LINK"] = "Plugin de taiHEN que permite forzar la configuración de botones preferida en Juego Remoto (PS4)" diff --git a/AUTOPLUG2/plugins/plugins.lua b/AUTOPLUG2/plugins/plugins.lua index e4694bd9..ca0806cb 100644 --- a/AUTOPLUG2/plugins/plugins.lua +++ b/AUTOPLUG2/plugins/plugins.lua @@ -50,6 +50,7 @@ plugins = { { name = "PSOneScrot by cuevavirus v0.1", path = "psonescrot.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_PSONESCROT"], KEY = "INSTALLP_DESC_PSONESCROT", link = "https://raw.githubusercontent.com/cuevavirus/PSOneScrot/master/README.md", }, { name = "Cpu Affinity Changer by GrapheneCt v2.0", path = "CpuAffinityChanger.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_CPUAFFCHANGER"], KEY = "INSTALLP_DESC_CPUAFFCHANGER", link = "https://raw.githubusercontent.com/GrapheneCt/Affinity-Changer/master/README.md", }, { name = "Sharpscale by cuevavirus r3", path = "sharpscale.skprx", section = "KERNEL", version = "0003", desc = LANGUAGE["INSTALLP_DESC_SHARPSCALE"], KEY = "INSTALLP_DESC_SHARPSCALE", link = "https://raw.githubusercontent.com/cuevavirus/Sharpscale/master/README.md", }, +{ name = "RapidMenu by cuevavirus r1", path = "rapidmenu.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_RAPIDMENU"], KEY = "INSTALLP_DESC_RAPIDMENU", link = "https://raw.githubusercontent.com/cuevavirus/Rapidmenu/master/README.md", }, --Boot_config.txt { name = "Custom Boot Splash by Princess of Sleeping", path = "custom_boot_splash.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_CUSTOMBOOTSPLASH"], KEY = "INSTALLP_DESC_CUSTOMBOOTSPLASH", link = "https://raw.githubusercontent.com/Princess-of-Sleeping/PSP2-CustomBootSplash/master/README.md", }, @@ -76,6 +77,7 @@ plugins = { { name = "NoSharedFb v1.0", path = "NoSharedFb.suprx", section = "main", version = "0001", desc = LANGUAGE["INSTALLP_DESC_NOSHAREDFB"], KEY = "INSTALLP_DESC_NOSHAREDFB", link = "https://raw.githubusercontent.com/GrapheneCt/NoSharedFb/master/README.md", }, { name = "TransparentImpose v1.0 by GrapheneCt", path = "TrImpose.suprx", section = "main", config = "trimpose.txt", configpath = "ur0:data/", version = "0001", desc = LANGUAGE["INSTALLP_DESC_TRIMPOSE"], KEY = "INSTALLP_DESC_TRIMPOSE", link = "https://raw.githubusercontent.com/GrapheneCt/TransparentImpose/master/README.md", }, { name = "Quietshot v1.0 by cuevavirus", path = "quietshot.suprx", section = "main", path2 = "quietshot.suprx", section2 = "NPXS10095", version = "0001", desc = LANGUAGE["INSTALLP_DESC_QUIETSHOT"], KEY = "INSTALLP_DESC_QUIETSHOT", link = "https://raw.githubusercontent.com/cuevavirus/Quietshot/master/README.md", }, +{ name = "ftpeverywhere v1.0 by teakhanirons", path = "ftpeverywhere.suprx", section = "main", version = "0001", desc = LANGUAGE["INSTALLP_DESC_FTPEVERYWHERE"], KEY = "INSTALLP_DESC_FTPEVERYWHERE", link = "https://raw.githubusercontent.com/teakhanirons/ftpeverywhere/master/README.md", vpk = string.format("https://github.com/%s/%s/raw/master/vpks/%s", APP_REPO, APP_PROJECT, "NoSleep.vpk"), }, --All { name = "PSV-VSH MENU by joel16 v3.4", path = "vsh.suprx", section = "ALL", path2 = "kuio.skprx", section2 = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_VSHMENU"], KEY = "INSTALLP_DESC_VSHMENU", link = "https://raw.githubusercontent.com/joel16/PSV-VSH-Menu/master/README.md", },-- Need kuio.skprx diff --git a/AUTOPLUG2/resources/config/config.txt b/AUTOPLUG2/resources/config/config.txt index abb96858..2db8dfb2 100644 --- a/AUTOPLUG2/resources/config/config.txt +++ b/AUTOPLUG2/resources/config/config.txt @@ -13,6 +13,3 @@ ur0:tai/henkaku.suprx *NPXS10016 # this is for modifying the version string in settings widget ur0:tai/henkaku.suprx -*NPXS10013 -# this is for modifying the version string in settings -*ALL \ No newline at end of file diff --git a/AUTOPLUG2/resources/plugins/ftpeverywhere.suprx b/AUTOPLUG2/resources/plugins/ftpeverywhere.suprx new file mode 100644 index 00000000..f723ac31 Binary files /dev/null and b/AUTOPLUG2/resources/plugins/ftpeverywhere.suprx differ diff --git a/AUTOPLUG2/resources/plugins/rapidmenu.skprx b/AUTOPLUG2/resources/plugins/rapidmenu.skprx new file mode 100644 index 00000000..5dfbbb3a Binary files /dev/null and b/AUTOPLUG2/resources/plugins/rapidmenu.skprx differ diff --git a/AUTOPLUG2/sce_sys/livearea/contents/template.xml b/AUTOPLUG2/sce_sys/livearea/contents/template.xml index e4dfd078..9b41f506 100644 --- a/AUTOPLUG2/sce_sys/livearea/contents/template.xml +++ b/AUTOPLUG2/sce_sys/livearea/contents/template.xml @@ -20,7 +20,7 @@ - v1.03 + v1.04 diff --git a/AUTOPLUG2/sce_sys/param.sfo b/AUTOPLUG2/sce_sys/param.sfo index c6ec959e..19f8f9c9 100644 Binary files a/AUTOPLUG2/sce_sys/param.sfo and b/AUTOPLUG2/sce_sys/param.sfo differ diff --git a/AUTOPLUG2/script.lua b/AUTOPLUG2/script.lua index 1db08bd4..6367f5d8 100644 --- a/AUTOPLUG2/script.lua +++ b/AUTOPLUG2/script.lua @@ -44,6 +44,9 @@ __LANG = ini.read(__PATH_INI,"LANGUAGE","lang","") if __LANG == "" then __LANG = os.language() end dofile("scripts/language.lua") +dofile("scripts/commons.lua") +dofile("scripts/scroll.lua") + -- Loading font files.mkdir("ux0:data/AUTOPLUGIN2/font/") fnt = nil @@ -54,7 +57,9 @@ end if __LANG == "CHINESE_T" or __LANG == "CHINESE_S" or __LANG == "TURKISH" then if not files.exists("ux0:data/AUTOPLUGIN2/font/font.pgf") then - message_wait(LANGUAGE["CHINESE_FONT_DOWNLOAD"]) + if back then back:blit(0,0) end + message_wait(LANGUAGE["CHINESE_FONT_DOWNLOAD"]) + os.delay(500) http.getfile(string.format("https://raw.githubusercontent.com/%s/%s/master/font/font.pgf", APP_REPO, APP_PROJECT), "ux0:data/AUTOPLUGIN2/font/font.pgf") end if not fnt then fnt, __FONT = font.load("ux0:data/AUTOPLUGIN2/font/font.pgf"), "font.pgf" end @@ -68,9 +73,6 @@ if os.access() == 0 then os.exit() end -dofile("scripts/commons.lua") -dofile("scripts/scroll.lua") - __UPDATE = tonumber(ini.read(__PATH_INI,"UPDATE","update","1")) _update = LANGUAGE["NO"] if __UPDATE == 1 then @@ -81,18 +83,18 @@ write_config() --Copy defect for config.txt dofile("scripts/tai.lua") -if not files.exists(tai_ux0_path) and not files.exists(tai_ur0_path) then files.copy("resources/config/config.txt", "ur0:tai/") end + +--Aqui obtener solo ur0:tai/config.txt, eliminar o ignorar ux0:tai/config.txt +files.delete("ux0:tai/config.txt") +files.delete("uma0:tai/config") +if not files.exists(tai_config_ur0_path) then files.copy("resources/config/config.txt", "ur0:tai/") end --Init load configs tai.load() -tai.sync(__UX0, "ux0:tai/config.txt") -tai.sync(__UR0, "ur0:tai/config.txt") - --Backups -tai.sync(__UX0, "ux0:tai/config_backup.txt") -tai.sync(__UR0, "ur0:tai/config_backup.txt") - +tai.sync(tai_config_ur0_path) +tai.sync("ur0:tai/config_backup.txt") if back then back:blit(0,0) end message_wait(LANGUAGE["STRING_BACKUP_CONFIGS"]) diff --git a/AUTOPLUG2/scripts/commons.lua b/AUTOPLUG2/scripts/commons.lua index 49f0584a..d3f3cb27 100644 --- a/AUTOPLUG2/scripts/commons.lua +++ b/AUTOPLUG2/scripts/commons.lua @@ -78,6 +78,10 @@ function onExtractFiles(size,written,file,totalsize,totalwritten) return 1 end +function tableSortSectionAsc(a,b) + return (a.section < b.section) or (a.section == b.section and a.name < b.name) +end + function write_config() ini.write(__PATH_INI,"UPDATE","update",__UPDATE) ini.write(__PATH_INI,"LANGUAGE","lang",__LANG) @@ -108,9 +112,8 @@ end --Variables Universales path_plugins = "resources/plugins/" -__UX0, __UR0, loc = 1,2,1 -locations = { "ux0:", "ur0:" } -path_tai = locations[loc].."tai/" +tai_ux0 = "ux0:tai/" +tai_ur0 = "ur0:tai/" version = tostring(os.swversion()) --Buttons Assign diff --git a/AUTOPLUG2/scripts/extras/customsplash.lua b/AUTOPLUG2/scripts/extras/customsplash.lua index dbc5afeb..a6ec2098 100644 --- a/AUTOPLUG2/scripts/extras/customsplash.lua +++ b/AUTOPLUG2/scripts/extras/customsplash.lua @@ -48,7 +48,7 @@ function img2splashbin(img,flag) fp:close() if copy then - files.copy("resources/plugins/custom_boot_splash.skprx", locations[loc].."tai/") + files.copy("resources/plugins/custom_boot_splash.skprx", tai_ur0) end if flag then @@ -69,13 +69,7 @@ end function customimgsplash() --Init load configs - loc = 1 tai.load() - local partition = 0 - if tai[__UX0].exist then partition = __UX0 - elseif tai[__UR0].exist then partition,loc = __UR0,2 - end - path_tai = locations[loc].."tai/" local png, custom_boot = files.listfiles("ux0:CustomBootsplash/"), {} @@ -180,7 +174,7 @@ function customimgsplash() if buttons.accept then if os.message(LANGUAGE["CUSTOMBOOTSPLASH_QUESTION"],1) == 1 then - files.copy("resources/plugins/custom_boot_splash.skprx",path_tai) + files.copy("resources/plugins/custom_boot_splash.skprx",tai_ur0) if img2splashbin(custom_boot[scroll.sel].img,true) == 1 then if os.message(LANGUAGE["RESTART_QUESTION"],1) == 1 then if back then back:blit(0,0) end @@ -210,7 +204,7 @@ function customimgsplash() screen.flip() os.delay(1500) if os.message(LANGUAGE["CUSTOMBOOTSPLASH_QUESTION"],1) == 1 then - files.copy("resources/plugins/custom_boot_splash.skprx",path_tai) + files.copy("resources/plugins/custom_boot_splash.skprx",tai_ur0) tmpimg:reset() if img2splashbin(tmpimg,true) == 1 then if os.message(LANGUAGE["RESTART_QUESTION"],1) == 1 then diff --git a/AUTOPLUG2/scripts/extras/menu_extras.lua b/AUTOPLUG2/scripts/extras/menu_extras.lua index de2e092c..4f354a0f 100644 --- a/AUTOPLUG2/scripts/extras/menu_extras.lua +++ b/AUTOPLUG2/scripts/extras/menu_extras.lua @@ -136,9 +136,7 @@ function menu_extras() end --Init load configs - loc = 1 tai.load() - if tai[__UR0].exist then loc = 2 end local menu = { { text = LANGUAGE["MENU_EXTRAS_INSTALL_ITLSENSO"], desc = LANGUAGE["MENU_EXTRAS_INSTALL_ITLSENSO_DESC"], funct = itls_callback }, { text = LANGUAGE["MENU_EXTRAS_INSTALL_BATTFIX"], desc = LANGUAGE["MENU_EXTRAS_INSTALL_DESC_BATTFIX"], funct = batteryfixer_callback }, @@ -148,17 +146,17 @@ function menu_extras() table.insert(menu, 1, { text = LANGUAGE["MENU_EXTRAS_PKGJ_TITLE"], desc = LANGUAGE["MENU_EXTRAS_CUSTOM_PKG_CONFIG_DESC"], funct = config_callback } ) end - local idx = tai.find(loc, "KERNEL", "custom_boot_splash.skprx") + local idx = tai.find("KERNEL", "custom_boot_splash.skprx") if idx then table.insert(menu, { text = LANGUAGE["MENU_EXTRAS_CONVERT_BOOTSPLASH"], desc = LANGUAGE["MENU_EXTRAS_CUSTOMBOOTSPLASH_DESC"], funct = convertimgsplash_callback } ) end - idx = tai.find(loc, "main", "custom_warning.suprx") + idx = tai.find("main", "custom_warning.suprx") if idx then table.insert(menu, { text = LANGUAGE["MENU_EXTRAS_CUSTOM_WARNING"], desc = LANGUAGE["MENU_EXTRAS_CUSTOMWARNING_DESC"], funct = customwarning_callback } ) end - idx = tai.find(loc, "main", "TrImpose.suprx") + idx = tai.find("main", "TrImpose.suprx") if idx then table.insert(menu, { text = LANGUAGE["MENU_EXTRAS_TRANSP_IMPOSE"], desc = LANGUAGE["MENU_EXTRAS_TRANSPIMPOSE_DESC"], funct = customTransImpose_callback } ) end diff --git a/AUTOPLUG2/scripts/psvita/autoplugin.lua b/AUTOPLUG2/scripts/psvita/autoplugin.lua index c22923cc..62599601 100644 --- a/AUTOPLUG2/scripts/psvita/autoplugin.lua +++ b/AUTOPLUG2/scripts/psvita/autoplugin.lua @@ -12,18 +12,18 @@ function plugins_installation(sel) if plugins[sel].path:find("udcd_uvc",1,true) and hw.model() == "PlayStation TV" then os.message(LANGUAGE["INSTALLP_WARNING_UDCD"]) - elseif plugins[sel].path == "reF00D.skprx" and loc == __UX0 then os.message(LANGUAGE["INSTALLP_WARNING_REFOOD"]) + --elseif plugins[sel].path == "reF00D.skprx" and loc == __UX0 then os.message(LANGUAGE["INSTALLP_WARNING_REFOOD"]) elseif plugins[sel].path == "custom_warning.suprx" and ( version == "3.67" or version == "3.68") then os.message(LANGUAGE["INSTALLP_CWARNING_360_365"]) else local idx = nil - if files.exists(tai[loc].path) then + if files.exists(tai.path) then local install,udcd = true,false - idx = tai.find(loc, "KERNEL", "udcd_uvc.skprx") + idx = tai.find("KERNEL", "udcd_uvc.skprx") if idx then - tai.del(loc, "KERNEL", "udcd_uvc.skprx") + tai.del("KERNEL", "udcd_uvc.skprx") udcd = true end @@ -39,26 +39,26 @@ function plugins_installation(sel) --Checking plugin Batt (only 1 of them) if plugins[sel].path == "shellbat.suprx" then - idx = tai.find(loc, "main", "shellsecbat.suprx") + idx = tai.find("main", "shellsecbat.suprx") if idx then if os.message(LANGUAGE["INSTALLP_QUESTION_SHELLSECBAT"],1) == 1 then - tai.del(loc, "main", "shellsecbat.suprx") + tai.del("main", "shellsecbat.suprx") else install = false end end elseif plugins[sel].path == "shellsecbat.suprx" then - idx = tai.find(loc, "main", "shellbat.suprx") + idx = tai.find("main", "shellbat.suprx") if idx then if os.message(LANGUAGE["INSTALLP_QUESTION_SHELLBAT"],1) == 1 then - tai.del(loc, "main", "shellbat.suprx") + tai.del("main", "shellbat.suprx") else install = false end end elseif plugins[sel].path:find(string.lower("repatch"),1,true) then - tai.del(loc, "KERNEL", "repatch.skprx") - tai.del(loc, "KERNEL", "repatch_4.skprx") + tai.del("KERNEL", "repatch.skprx") + tai.del("KERNEL", "repatch_4.skprx") elseif plugins[sel].path == "vitastick.skprx" and not game.exists("VITASTICK") then __file = "vitastick.vpk" @@ -121,20 +121,20 @@ function plugins_installation(sel) if install then --Install plugin to tai folder - files.copy(path_plugins..plugins[sel].path, path_tai) + files.copy(path_plugins..plugins[sel].path, tai_ur0) --Install Extra Plugin - if plugins[sel].path2 then files.copy(path_plugins..plugins[sel].path2, path_tai) end + if plugins[sel].path2 then files.copy(path_plugins..plugins[sel].path2, tai_ur0) end --Install Especial Config for the plugin if plugins[sel].config then if plugins[sel].config == "custom_warning.txt" then - if not files.exists(locations[loc].."tai/"..plugins[sel].config) then + if not files.exists(tai_ur0..plugins[sel].config) then local text = osk.init(LANGUAGE["INSTALLP_OSK_TITLE"], LANGUAGE["INSTALLP_OSK_TEXT"]) if not text or (string.len(text)<=0) then text = "" end--os.nick() end - local fp = io.open(locations[loc].."tai/"..plugins[sel].config, "wb") + local fp = io.open(tai_ur0..plugins[sel].config, "wb") if fp then fp:write(string.char(0xFF)..string.char(0xFE)) fp:write(os.toucs2(text)) @@ -145,26 +145,26 @@ function plugins_installation(sel) if plugins[sel].configpath then files.copy(path_plugins..plugins[sel].config, plugins[sel].configpath) else - files.copy(path_plugins..plugins[sel].config, locations[loc].."tai/") + files.copy(path_plugins..plugins[sel].config, tai_ur0) end end end --Insert plugin to Config - local pathline_in_config = path_tai..plugins[sel].path + local pathline_in_config = tai_ur0..plugins[sel].path if plugins[sel].path == "adrenaline_kernel.skprx" then pathline_in_config = "ux0:app/PSPEMUCFW/sce_module/adrenaline_kernel.skprx" end idx = nil if plugins[sel].section2 then - idx = tai.find(loc, plugins[sel].section2, path_tai..plugins[sel].path2) - if idx then tai.del(loc, plugins[sel].section2, path_tai..plugins[sel].path2) end - tai.put(loc, plugins[sel].section2, path_tai..plugins[sel].path2) + idx = tai.find(plugins[sel].section2, tai_ur0..plugins[sel].path2) + if idx then tai.del(plugins[sel].section2, tai_ur0..plugins[sel].path2) end + tai.put(plugins[sel].section2, tai_ur0..plugins[sel].path2) end - idx = tai.find(loc, plugins[sel].section, pathline_in_config) - if idx then tai.del(loc, plugins[sel].section, pathline_in_config) end + idx = tai.find(plugins[sel].section, pathline_in_config) + if idx then tai.del(plugins[sel].section, pathline_in_config) end local plugin_name = plugins[sel].name @@ -172,52 +172,52 @@ function plugins_installation(sel) if plugins[sel].path:find("udcd_uvc_",1,true) then --os.message("offs") if hw.model() == "Vita Fat" then - tai.put(loc, plugins[sel].section, path_tai.."udcd_uvc_oled_off.skprx") + tai.put(plugins[sel].section, tai_ur0.."udcd_uvc_oled_off.skprx") plugin_name = "udcd_uvc_oled" else - tai.put(loc, plugins[sel].section, path_tai.."udcd_uvc_lcd_off.skprx") + tai.put(plugins[sel].section, tai_ur0.."udcd_uvc_lcd_off.skprx") plugin_name = "udcd_uvc_lcd" end else if plugins[sel].path:lower() == "custom_boot_splash.skprx" or (udcd or plugins[sel].path:lower() == "udcd_uvc.skprx") then --os.message("1") - tai.put(loc, plugins[sel].section, pathline_in_config) + tai.put(plugins[sel].section, pathline_in_config) if udcd or plugins[sel].path:lower() == "udcd_uvc.skprx" then --os.message("udcd_uvc.skprx") - tai.put(loc, "KERNEL", path_tai.."udcd_uvc.skprx") - tai.del(loc, "KERNEL", "udcd_uvc_oled_off.skprx") - tai.del(loc, "KERNEL", "udcd_uvc_lcd_off.skprx") + tai.put("KERNEL", tai_ur0.."udcd_uvc.skprx") + tai.del("KERNEL", "udcd_uvc_oled_off.skprx") + tai.del("KERNEL", "udcd_uvc_lcd_off.skprx") end else if plugins[sel].path:find("udcd_uvc_",1,true) then if hw.model() == "Vita Fat" then --os.message("udcd_uvc_oled 2") - tai.put(loc, plugins[sel].section, path_tai.."udcd_uvc_oled_off.skprx") + tai.put(plugins[sel].section, tai_ur0.."udcd_uvc_oled_off.skprx") plugin_name = "udcd_uvc_oled" - tai.del(loc, "KERNEL", "udcd_uvc.skprx") + tai.del("KERNEL", "udcd_uvc.skprx") else --os.message("udcd_uvc_lcd 2") - tai.put(loc, plugins[sel].section, path_tai.."udcd_uvc_lcd_off.skprx") + tai.put(plugins[sel].section, tai_ur0.."udcd_uvc_lcd_off.skprx") plugin_name = "udcd_uvc_lcd" - tai.del(loc, "KERNEL", "udcd_uvc.skprx") + tai.del("KERNEL", "udcd_uvc.skprx") end else if (plugins[sel].path == "vitacheat.skprx") then --3.65 - tai.del(loc, "KERNEL", "vitacheat360.skprx") + tai.del("KERNEL", "vitacheat360.skprx") elseif (plugins[sel].path == "vitacheat360.skprx") then - tai.del(loc, "KERNEL", "vitacheat.skprx") + tai.del("KERNEL", "vitacheat.skprx") end --os.message("2") - tai.put(loc, plugins[sel].section, pathline_in_config) + tai.put(plugins[sel].section, pathline_in_config) end end end --Write - tai.sync(loc) + tai.sync() --Extra if plugins[sel].path == "vsh.suprx" then files.delete("ur0:/data:/vsh/") @@ -240,11 +240,21 @@ function plugins_installation(sel) elseif plugins[sel].path == "ps4linkcontrols.suprx" and not files.exists("ux0:ps4linkcontrols.txt") then--ps4linkcontrols files.extract("resources/plugins/ps4linkcontrols.zip","ux0:") end + + if plugins[sel].section2 and plugins[sel].section2 == "KERNEL" then + change = true + end + + if plugins[sel].section == "main" or plugins[sel].section == "KERNEL" then + change = true + else + ReloadConfig = true + end if back2 then back2:blit(0,0) end message_wait(plugin_name.."\n\n"..LANGUAGE["STRING_INSTALLED"]) - os.delay(1500) - change = true + os.delay(1250) + end else @@ -257,19 +267,15 @@ end function autoplugin() --Init load configs - loc = 1 tai.load() - local partition = 0 - if tai[__UX0].exist then partition = __UX0 - elseif tai[__UR0].exist then partition,loc = __UR0,2 - end - path_tai = locations[loc].."tai/" local limit = 9 local scr = newScroll(plugins,limit) local xscr1,toinstall = 10,0 scr.ini,scr.lim,scr.sel = 1,limit,1 + local ReloadConfig = false + while true do buttons.read() if change then buttons.homepopup(0) else buttons.homepopup(1) end @@ -278,15 +284,10 @@ function autoplugin() screen.print(10,15,LANGUAGE["LIST_PLUGINS"].." "..toinstall.."/"..#plugins,1,color.white) --Partitions - local xRoot = 750 - local w = (960-xRoot)/#locations - for i=1, #locations do - if loc == i then - draw.fillrect(xRoot,0,w,47, color.green:a(90)) - end - screen.print(xRoot+(w/2), 12, locations[i], 1, color.white, color.blue, __ACENTER) - xRoot += w - end + local xRoot = 860 + local w = (960-xRoot) + draw.fillrect(xRoot,0,w,40, color.green:a(90)) + screen.print(xRoot+(w/2), 12, "ur0:", 1, color.white, color.blue, __ACENTER) --List of Plugins local y = 64 @@ -294,9 +295,9 @@ function autoplugin() if i == scr.sel then draw.offsetgradrect(3,y-9,944,31,color.shine:a(75),color.shine:a(135),0x0,0x0,21) end - idx = tai.find(partition,plugins[i].section,plugins[i].path) + idx = tai.find(plugins[i].section,plugins[i].path) if idx != nil then - if files.exists(tai[partition].gameid[ plugins[i].section ].prx[idx].path) then + if files.exists(tai.gameid[ plugins[i].section ].prx[idx].path) then if dotg then dotg:blit(924,y-1) else draw.fillrect(924,y-2,21,21,color.green:a(205)) end else if doty then doty:blit(924,y-1) else draw.fillrect(924,y-2,21,21,color.yellow:a(205)) end @@ -332,11 +333,20 @@ function autoplugin() screen.print(480, 405, plugins[scr.sel].desc,1,color.green, 0x0,__ACENTER) end + screen.print(950, 433, plugins[scr.sel].section,1,color.yellow, 0x0,__ARIGHT) + screen.print(950, 455, plugins[scr.sel].path,1,color.yellow, 0x0,__ARIGHT) + if plugins[scr.sel].section2 then + screen.print(950, 480, plugins[scr.sel].section2,1,color.yellow, 0x0,__ARIGHT) + screen.print(950, 500, plugins[scr.sel].path2,1,color.yellow, 0x0,__ARIGHT) + end + + --[[ if tai[__UX0].exist and tai[__UR0].exist then if buttonskey2 then buttonskey2:blitsprite(900,448,2) end if buttonskey2 then buttonskey2:blitsprite(930,448,3) end screen.print(895,450,LANGUAGE["LR_SWAP"],1,color.white,color.black,__ARIGHT) end + ]] if buttonskey then buttonskey:blitsprite(10,448,__SQUARE) end screen.print(45,450,LANGUAGE["MARK_PLUGINS"],1,color.white,color.black, __ALEFT) @@ -358,6 +368,10 @@ function autoplugin() -------------------------- Controls -------------------------- if buttons.released.cancel then + if ReloadConfig then + if os.taicfgreload() != 1 then change = true end + end + --Clean for i=1,scr.maxim do plugins[i].inst = false @@ -369,12 +383,17 @@ function autoplugin() --Exit if buttons.start then + if ReloadConfig then + if os.taicfgreload() != 1 then change = true end + end + if change then os.message(LANGUAGE["STRING_PSVITA_RESTART"]) os.delay(250) buttons.homepopup(1) power.restart() end + os.exit() end @@ -389,8 +408,12 @@ function autoplugin() end if buttons.released.l or buttons.released.r then - if tai[__UX0].exist and tai[__UR0].exist then - if loc == __UX0 then loc = __UR0 else loc = __UX0 end + if tsort == 1 then + tsort = 0 + table.sort(plugins, tableSortSectionAsc) + else + tsort = 1 + table.sort(plugins, function (a,b) return string.lower(a.name) 0 then table.sort(plugins, function (a,b) return string.lower(a.name) 0 then table.sort(plugins, function (a,b) return string.lower(a.name) 0 then + if tsort == 1 then + table.sort(plugins, function (a,b) return string.lower(a.name) 0 then - table.insert(tmp, tai[partition].gameid[k].section) + table.insert(tmp, tai.gameid[k].section) end end if #tmp > 1 then table.sort(tmp) end @@ -55,18 +52,18 @@ function pluginsmanager() end for i=1,#section do - for j=1,#tai[partition].gameid[ section[i] ].prx do + for j=1,#tai.gameid[ section[i] ].prx do for k=1,#tb_cop do - if files.nopath(tai[partition].gameid[ section[i] ].prx[j].path:lower()) == tb_cop[k].path:lower() then - tai[partition].gameid[ section[i] ].prx[j].desc = tb_cop[k].desc + if files.nopath(tai.gameid[ section[i] ].prx[j].path:lower()) == tb_cop[k].path:lower() then + tai.gameid[ section[i] ].prx[j].desc = tb_cop[k].desc end end end end - if tai[partition].gameid[ section[sel_section] ] then - --os.message(tostring(#tai[partition].gameid[ section[sel_section] ].prx)) - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) + if tai.gameid[ section[sel_section] ] then + --os.message(tostring(#tai.gameid[ section[sel_section] ].prx)) + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) else scrollp = newScroll( {}, limtpm) end @@ -77,44 +74,41 @@ function pluginsmanager() screen.print(480,18,LANGUAGE["UNINSTALLP_TITLE"],1.2,color.white, 0x0, __ACENTER) - if not tai[partition].exist then screen.print(480,270,LANGUAGE["UNINSTALLP_NOCONFIG_FOUND"]..locations[partition],1.3,color.red, 0x0, __ACENTER) + if not tai.exist then screen.print(480,270,LANGUAGE["UNINSTALLP_NOCONFIG_FOUND"]..tai_ur0,1.3,color.red, 0x0, __ACENTER) else if #section > 0 and scrollp.maxim > 0 then --Partitions - local xRoot = 750 - local w = (960-xRoot)/#locations - for i=1, #locations do - if partition == i then - draw.fillrect(xRoot,0,w,40, color.green:a(90)) - end - screen.print(xRoot+(w/2), 12, locations[i], 1, color.white, color.blue, __ACENTER) - xRoot += w - end + local xRoot = 860 + local w = (960-xRoot) + draw.fillrect(xRoot,0,w,40, color.green:a(90)) + screen.print(xRoot+(w/2), 12, "ur0:", 1, color.white, color.blue, __ACENTER) draw.fillrect(0,40,960,350,color.shine:a(25)) - screen.print(15,20, "*"..section[sel_section],1,color.yellow, 0x0) + if section[sel_section] then + screen.print(13,20, " ("..scrollp.maxim..")".." ".."*"..section[sel_section],1,color.yellow, 0x0) + end - if tai[partition].gameid[ section[sel_section] ] then + if tai.gameid[ section[sel_section] ] then local y = y1 for i=scrollp.ini, scrollp.lim do if i == scrollp.sel then draw.offsetgradrect(0,y-10,940,35,color.shine:a(75),color.shine:a(135),0x0,0x0,21) - if tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].desc then - if screen.textwidth(tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].desc) > 925 then - xscr1 = screen.print(xscr1, 405, tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].desc,1,color.green, 0x0,__SLEFT,935) + if tai.gameid[ section[sel_section] ].prx[scrollp.sel].desc then + if screen.textwidth(tai.gameid[ section[sel_section] ].prx[scrollp.sel].desc) > 925 then + xscr1 = screen.print(xscr1, 405, tai.gameid[ section[sel_section] ].prx[scrollp.sel].desc,1,color.green, 0x0,__SLEFT,935) else - screen.print(480,405,tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].desc,1.0,color.green, 0x0, __ACENTER) + screen.print(480,405,tai.gameid[ section[sel_section] ].prx[scrollp.sel].desc,1.0,color.green, 0x0, __ACENTER) end end end - if not files.exists(tai[partition].gameid[ section[sel_section] ].prx[i].path) then ccolor = color.orange else ccolor = color.white end + if not files.exists(tai.gameid[ section[sel_section] ].prx[i].path) then ccolor = color.orange else ccolor = color.white end - screen.print(20,y, tai[partition].gameid[ section[sel_section] ].prx[i].path,1,ccolor,0x0) + screen.print(20,y, tai.gameid[ section[sel_section] ].prx[i].path,1,ccolor,0x0) y+=40 end @@ -129,8 +123,6 @@ function pluginsmanager() draw.fillrect(950, ybar-2 + ((hbar-pos_height)/(scrollp.maxim-1))*(scrollp.sel-1), 8, pos_height, color.new(0,255,0)) end - --screen.print(480,405,locations[partition].."tai/config.txt",1.3,color.green, 0x0, __ACENTER) - if buttonskey then buttonskey:blitsprite(5,448,saccept) end screen.print(30,450,LANGUAGE["UNINSTALLP_PLUGIN"],1,color.white,color.black,__ALEFT) @@ -138,15 +130,13 @@ function pluginsmanager() if buttonskey2 then buttonskey2:blitsprite(35,475,1) end screen.print(70,475,LANGUAGE["UNINSTALLP_LEFTRIGHT_SECTION"],1,color.white,color.black,__ALEFT) + screen.print(950, 435, "("..sel_section.."/"..#section..")",1,color.yellow, 0x0,__ARIGHT) + else screen.print(480,270,LANGUAGE["UNINSTALLP_EMPTY"],1.3,color.red,0x0,__ACENTER) end end - if buttonskey2 then buttonskey2:blitsprite(5,498,2) end - if buttonskey2 then buttonskey2:blitsprite(35,498,3) end - screen.print(70,500,LANGUAGE["LR_SWAP"],1,color.white,color.black,__ALEFT) - if buttonskey then buttonskey:blitsprite(10,523,scancel) end screen.print(35,525,LANGUAGE["STRING_BACK"],1,color.white,color.black, __ALEFT) @@ -157,16 +147,26 @@ function pluginsmanager() -------------------------- Controls -------------------------- - if buttons.cancel then break end + if buttons.cancel then + if ReloadConfig then + if os.taicfgreload() != 1 then change = true end + end + break + end --Exit if buttons.start then + if ReloadConfig then + if os.taicfgreload() != 1 then change = true end + end + if change then os.message(LANGUAGE["STRING_PSVITA_RESTART"]) os.delay(250) buttons.homepopup(1) power.restart() end + os.exit() end @@ -181,27 +181,26 @@ function pluginsmanager() end if buttons.accept then - if tai[partition].gameid[ section[sel_section] ] then + if tai.gameid[ section[sel_section] ] then - if os.message(LANGUAGE["UNINSTALLP_QUESTION"].."\n\n"..files.nopath(tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].path:lower()),1) == 1 then - table.remove(tai[partition].raw, tai[partition].gameid[section[sel_section]].prx[scrollp.sel].line) - local name = files.nopath(tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].path:lower()) + if os.message(LANGUAGE["UNINSTALLP_QUESTION"].."\n\n"..files.nopath(tai.gameid[ section[sel_section] ].prx[scrollp.sel].path:lower()),1) == 1 then + table.remove(tai.raw, tai.gameid[section[sel_section]].prx[scrollp.sel].line) + local name = files.nopath(tai.gameid[ section[sel_section] ].prx[scrollp.sel].path:lower()) --No delete if name != "adrenaline_kernel.skprx" then - local subpath = tai[partition].gameid[ section[sel_section] ].prx[scrollp.sel].path + local subpath = tai.gameid[ section[sel_section] ].prx[scrollp.sel].path if #subpath > 4 then --os.message("1\n"..subpath) -- files.delete(subpath) end end - tai.sync(partition) + tai.sync() tai.load() --Yamt if name == "yamt.suprx" then - --os.message("yamt") if files.exists("ur0:tai/boot_config.txt") then local cont = {} for line in io.lines("ur0:tai/boot_config.txt") do @@ -227,51 +226,102 @@ function pluginsmanager() for i=#tb_cop,1,-1 do if name == tb_cop[i].path:lower() then - if tb_cop[i].section2 and tai[partition].gameid[ tb_cop[i].section2 ] then - del_plugin_tai(partition, tb_cop[i].section2, tb_cop[i].path2) + if tb_cop[i].section2 and tai.gameid[ tb_cop[i].section2 ] then + del_plugin_tai(tb_cop[i].section2, tb_cop[i].path2) + if tb_cop[i].section2 and tb_cop[i].section2 == "KERNEL" then + change = true + end end end if tb_cop[i].path2 and (name == tb_cop[i].path2:lower()) then - if tb_cop[i].section and tai[partition].gameid[ tb_cop[i].section ] then - del_plugin_tai(partition, tb_cop[i].section, tb_cop[i].path) + if tb_cop[i].section and tai.gameid[ tb_cop[i].section ] then + del_plugin_tai(tb_cop[i].section, tb_cop[i].path) + if tb_cop[i].section and tb_cop[i].section == "KERNEL" then + change = true + end end end end + --Reboot or ReloadConfig + if section[sel_section]:upper() == "MAIN" or section[sel_section]:upper() == "KERNEL" or name:upper() == "YAMT.SUPRX" then + change = true + --os.message("change") + else + ReloadConfig = true + --os.message("Reload") + end + + tai.sync() + tai.load() + --update - if tai[partition].gameid[ section[sel_section] ] then - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) - if scrollp.maxim <= 0 then - for i=1,#section do - if section[sel_section] == section[i] then - --os.message(section[i]) - table.remove(section,i) - sel_section +=1 - if sel_section > #section then sel_section = 1 end - if tai[partition].gameid[ section[sel_section] ] then - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) - else - scrollp = newScroll( {}, limtpm) - end - break + if tai.gameid[ section[sel_section] ] then + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) + else + sel_section += 1 + if sel_section > #section then sel_section = 1 end + if tai.gameid[ section[sel_section] ] then + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) + else + scrollp = newScroll( {}, limtpm) + end + end + + if scrollp.maxim <= 0 then + for i=1,#section do + if section[sel_section] == section[i] then + --os.message(section[i]) + table.remove(section,i) + sel_section += 1 + if sel_section > #section then sel_section = 1 end + if tai.gameid[ section[sel_section] ] then + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) + else + scrollp = newScroll( {}, limtpm) end + break end end - --else - -- scrollp = newScroll( {}, limtpm) end - + + local tmp={} + section = {} + + for k,v in pairs(tai.gameid) do + --os.message(tostring(tai.gameid[k].section)) + local scroll_tmp = newScroll( tai.gameid[ k ].prx, limtpm) + if scroll_tmp.maxim > 0 then + table.insert(tmp, tai.gameid[k].section) + end + end + if #tmp > 1 then table.sort(tmp) end + + --*KERNEL,*main,*ALL...more + for i=1,#tmp do + if tmp[i]:upper() == "KERNEL" then + table.insert(section, 1, tmp[i]) + elseif tmp[i]:upper() == "MAIN" then + table.insert(section, 2, tmp[i]) + elseif tmp[i]:upper() == "ALL" then + table.insert(section, 3, tmp[i]) + else + table.insert(section, tmp[i]) + end + end + for i=1,#section do - for j=1,#tai[partition].gameid[ section[i] ].prx do - for k=1,#tb_cop do - if files.nopath(tai[partition].gameid[ section[i] ].prx[j].path:lower()) == tb_cop[k].path:lower() then - tai[partition].gameid[ section[i] ].prx[j].desc = tb_cop[k].desc + if tai.gameid[ section[i] ] then + for j=1,#tai.gameid[ section[i] ].prx do + for k=1,#tb_cop do + if files.nopath(tai.gameid[ section[i] ].prx[j].path:lower()) == tb_cop[k].path:lower() then + tai.gameid[ section[i] ].prx[j].desc = tb_cop[k].desc + end end end end end - change = true buttons.homepopup(0) end end @@ -279,50 +329,41 @@ function pluginsmanager() end - if tai[partition].exist then - if buttons.released.right then - sel_section +=1 + if tai.exist then + if buttons.released.right or buttons.released.left then + if buttons.released.right then sel_section += 1 else sel_section -= 1 end + if sel_section > #section then sel_section = 1 end - if tai[partition].gameid[ section[sel_section] ] then - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) - --else - -- scrollp = newScroll( {}, limtpm) - end - end - - if buttons.released.left then - sel_section -=1 if sel_section < 1 then sel_section = #section end - if tai[partition].gameid[ section[sel_section] ] then - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) - --else - -- scrollp = newScroll( {}, limtpm) + + if tai.gameid[ section[sel_section] ] then + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) end end end + --[[ if buttons.released.l or buttons.released.r then if partition == __UX0 then partition = __UR0 else partition = __UX0 end - if tai[partition].exist then + if tai.exist then sel_section = 1 - if tai[partition].gameid[ section[sel_section] ] then - scrollp = newScroll( tai[partition].gameid[ section[sel_section] ].prx, limtpm) - --else - -- scrollp = newScroll( {}, limtpm) + if tai.gameid[ section[sel_section] ] then + scrollp = newScroll( tai.gameid[ section[sel_section] ].prx, limtpm) end end end + ]] end end -function del_plugin_tai(mount, obj1, obj2) +function del_plugin_tai(obj1, obj2) - local idx = tai.find(mount, obj1, obj2) + local idx = tai.find(obj1, obj2) if idx then if name != "adrenaline_kernel.skprx" then - local subpath = tai[mount].gameid[ obj1 ].prx[idx].path + local subpath = tai.gameid[ obj1 ].prx[idx].path --delete plugin physical if #subpath > 4 then --os.message("2\n"..subpath) @@ -331,8 +372,8 @@ function del_plugin_tai(mount, obj1, obj2) end end - tai.del(mount, obj1, obj2) - tai.sync(mount) + tai.del(obj1, obj2) + tai.sync() tai.load() end diff --git a/AUTOPLUG2/scripts/psvita/sd2vita.lua b/AUTOPLUG2/scripts/psvita/sd2vita.lua index 761c63b1..5d90b23f 100644 --- a/AUTOPLUG2/scripts/psvita/sd2vita.lua +++ b/AUTOPLUG2/scripts/psvita/sd2vita.lua @@ -96,41 +96,33 @@ function install() end --No ur0:tai/config.txt - if not tai[__UR0].exist then - - if tai[__UX0].exist then files.copy(tai[__UX0].path, "ur0:tai/") --If exist ux0:tai/config.txt copy to ur0:tai - else - files.copy("resources/config/config.txt", "ur0:tai/") - end - + if not tai.exist then + files.copy("resources/config/config.txt", "ur0:tai/") --Update configs tai.load() end --delete if plugin gamesd.skprx - if tai[__UR0].gameid["KERNEL"] then - tai.del(__UR0, "KERNEL", "gamesd.skprx") + if tai.gameid["KERNEL"] then + tai.del("KERNEL", "gamesd.skprx") --Write - tai.sync(__UR0) + tai.sync() end --Update configs tai.load() - -- Delete ux0:tai/config.txt - if tai[__UX0].exist then files.delete(tai[__UX0].path) end - - if files.exists(tai[__UR0].path) then + if files.exists(tai.path) then --Install plugin to tai folder - files.copy(path_plugins.."storagemgr.skprx", "ur0:tai") - files.copy(path_plugins.."storage_config.txt", "ur0:tai") + files.copy(path_plugins.."storagemgr.skprx", tai_ur0) + files.copy(path_plugins.."storage_config.txt", tai_ur0) --Insert plugin to Config - tai.put(__UR0, "KERNEL", "ur0:tai/storagemgr.skprx", 1) + tai.put("KERNEL", "ur0:tai/storagemgr.skprx", 1) --Write - tai.sync(__UR0) + tai.sync() change = true buttons.homepopup(0) @@ -296,7 +288,7 @@ end function read_storage_config() - if not files.exists("ur0:tai/storage_config.txt") then files.copy(path_plugins.."storage_config.txt", "ur0:tai") end + if not files.exists("ur0:tai/storage_config.txt") then files.copy(path_plugins.."storage_config.txt", tai_ur0) end local data = {} for line in io.lines("ur0:tai/storage_config.txt") do @@ -323,8 +315,8 @@ function parse_mounts(devices, mounts, original) end function sd2vita() - if tai[__UR0].exist and tai.find(__UR0, "KERNEL", "storagemgr.skprx") then - if not files.exists("ur0:tai/storage_config.txt") then files.copy(path_plugins.."storage_config.txt", "ur0:tai") end + if tai.exist and tai.find("KERNEL", "storagemgr.skprx") then + if not files.exists("ur0:tai/storage_config.txt") then files.copy(path_plugins.."storage_config.txt", tai_ur0) end configure() else install() diff --git a/AUTOPLUG2/scripts/settings/change_lang.lua b/AUTOPLUG2/scripts/settings/change_lang.lua index e9154716..3dfc36a9 100644 --- a/AUTOPLUG2/scripts/settings/change_lang.lua +++ b/AUTOPLUG2/scripts/settings/change_lang.lua @@ -46,7 +46,7 @@ function change_lang() local maxim,y1 = 8,85 local scroll = newScroll(tb,maxim) - local xscroll = 10 + local xscroll,xcroll2 = 10,10 while true do buttons.read() @@ -73,10 +73,15 @@ function change_lang() local pos_height = math.max(h/scroll.maxim, maxim) draw.fillrect(3, ybar-2 + ((h-pos_height)/(scroll.maxim-1))*(scroll.sel-1), 8, pos_height, color.new(0,255,0)) - if screen.textwidth(LANGUAGE["TRANSLATE_CURRENT_TITLE"]..current_lang) > 925 then - xscroll = screen.print(xscroll, 445, LANGUAGE["TRANSLATE_CURRENT_TITLE"]..current_lang, 1, color.white, color.blue, __SLEFT,935) + if screen.textwidth(LANGUAGE["TRANSLATE_CURRENT_TITLE"]..tostring(os.language())) > 925 then + xcroll2 = screen.print(xcroll2, 445, LANGUAGE["TRANSLATE_CURRENT_TITLE"]..tostring(os.language()), 1, color.white, color.blue, __SLEFT,935) else - screen.print(10, 445,LANGUAGE["TRANSLATE_CURRENT_TITLE"]..current_lang,1,color.white,color.blue,__ALEFT) + screen.print(10, 445,LANGUAGE["TRANSLATE_CURRENT_TITLE"]..tostring(os.language()),1,color.white,color.blue,__ALEFT) + end + if screen.textwidth(LANGUAGE["TRANSLATE_CURRENT_AUTOPLUGIN"]..current_lang) > 925 then + xscroll = screen.print(xscroll, 475, LANGUAGE["TRANSLATE_CURRENT_AUTOPLUGIN"]..current_lang, 1, color.white, color.blue, __SLEFT,935) + else + screen.print(10, 475,LANGUAGE["TRANSLATE_CURRENT_AUTOPLUGIN"]..current_lang,1,color.white,color.blue,__ALEFT) end else @@ -125,7 +130,13 @@ function change_lang() end dofile("plugins/plugins.lua") - if #plugins > 0 then table.sort(plugins, function (a,b) return string.lower(a.name) 0 then + if tsort == 1 then + table.sort(plugins, function (a,b) return string.lower(a.name) 1 then if line:find("*",1,true) then -- Secction Found. id_sect = line:sub(2) - --os.message("id_sect\n"..id_sect) + --os.message("id_sect\n"..id_sect.. " "..i) --print("Section found %s\n", id_sect) - if not tai[index].gameid[id_sect] then tai[index].gameid[id_sect] = { line = {}, prx = {}, section = id_sect } end - table.insert(tai[index].gameid[id_sect].line, i) + if not tai.gameid[id_sect] then + tai.gameid[id_sect] = { line = {}, prx = {}, section = id_sect } + end + table.insert(tai.gameid[id_sect].line, i) continue end if id_sect and not line:find("#",1,true) then -- Is a path and not a comment. - --print("[%s]: %s\n", id_sect, line:lower()) + --print("[%s]: %s\n", id_sect, line) if not line:find("henkaku.suprx",1,true) then - --os.message("line\n"..line:lower()) - table.insert(tai[index].gameid[id_sect].prx, { path=line:lower(), line=i }) + --os.message("insert\n"..line.." "..i) + table.insert(tai.gameid[id_sect].prx, { path = line, line = i }) end - end + end--id_sect + end end + end end @@ -124,35 +117,35 @@ end concentrating these into a single one, and preserving the first id found in the txt, or if section is void, delete. Useful to repair previous errors in the use of the same. ]] -function tai.repair(index) +function tai.repair() - if tai[index].raw and tai[index].gameid then - for k,v in pairs(tai[index].gameid) do + if tai.raw and tai.gameid then + for k,v in pairs(tai.gameid) do local len = #v.line if len > 1 then - tai.delete_sect(index, v) -- Remove all sections of id... + tai.delete_sect(v) -- Remove all sections of id... -- Reinsert in first pos! :D - table.insert(tai[index].raw,v.line[1], "*"..k) + table.insert(tai.raw,v.line[1], "*"..k) for a=1, #v.prx do - table.insert(tai[index].raw,v.line[1]+a, v.prx[a].path) + table.insert(tai.raw,v.line[1]+a, v.prx[a].path) end - tai.parse(index) + tai.parse() - return tai.repair(index) -- recursive! :D + return tai.repair() -- recursive! :D elseif #v.prx < 1 then -- No have any plug?, remove!!!! - local id = tai[index].gameid[k].section + local id = tai.gameid[k].section --os.message(section) if id != "KERNEL" and id != "main" and id != "ALL" and id != "NPXS10015" and id != "NPXS10016" then --os.message(section) - tai.delete_sect(index, v) -- Remove all sections of id... - tai.parse(index) + tai.delete_sect(v) -- Remove all sections of id... + tai.parse() - return tai.repair(index) -- recursive! :D + return tai.repair() -- recursive! :D end end @@ -161,7 +154,7 @@ function tai.repair(index) end -function tai.delete_sect(index, v) -- Internal use... +function tai.delete_sect(v) -- Internal use... local len = #v.line @@ -169,32 +162,32 @@ function tai.delete_sect(index, v) -- Internal use... for b=#v.prx, 1, -1 do if v.prx[b].line > v.line[a] and not v.prx[b].rv then --print("Line: %d - Removed: %s\n", v.prx[b].line, - table.remove(tai[index].raw, v.prx[b].line)--) + table.remove(tai.raw, v.prx[b].line)--) v.prx[b].rv = true end end --print("Line: %d - Removed: %s\n",v.line[a], - table.remove(tai[index].raw, v.line[a])--) + table.remove(tai.raw, v.line[a])--) end end --[[ - NUMBER tai.find(index, id, path) + NUMBER tai.find(id, path) Search a filename in the list of plugin of the id. return nil in case of error, index in success. ]] -function tai.find(index, id, path) +function tai.find(id, path) - if not tai[index].gameid[id] then return nil end + if not tai.gameid[id] then return nil end local fname = files.nopath(path)--name or "" fname = fname:lower() - for i=1, #tai[index].gameid[id].prx do - local x1,x2 = string.find(tai[index].gameid[id].prx[i].path:lower(), fname, 1, true) + for i=1, #tai.gameid[id].prx do + local x1,x2 = string.find(tai.gameid[id].prx[i].path:lower(), fname, 1, true) if x1 then return i end @@ -204,39 +197,39 @@ function tai.find(index, id, path) end --[[ - NUMBER tai.put(index, id, path) + NUMBER tai.put(id, path) Add a filename in the list of plugin of the id, if the id no exists, then create a id or if exists id and path then nothing do! return false in case of error, true in success. ]] -function tai.put(index, id, path, pos) +function tai.put(id, path, pos) - local idx = tai.find(index, id, path) + local idx = tai.find(id, path) if idx then -- Nothing to do... :O ? - --tai[index].gameid[id].prx[idx].path = + --tai.gameid[id].prx[idx].path = - elseif tai[index].gameid[id] then -- Exists the id then have any prx! + elseif tai.gameid[id] then -- Exists the id then have any prx! - idx = #tai[index].gameid[id].prx + idx = #tai.gameid[id].prx if pos then - table.insert(tai[index].raw, tai[index].gameid[id].line[1]+pos, path) + table.insert(tai.raw, tai.gameid[id].line[1]+pos, path) else if idx > 0 then - table.insert(tai[index].raw, tai[index].gameid[id].prx[idx].line+1, path) + table.insert(tai.raw, tai.gameid[id].prx[idx].line+1, path) else - table.insert(tai[index].raw, tai[index].gameid[id].line[1] + 1, path) + table.insert(tai.raw, tai.gameid[id].line[1] + 1, path) end end - tai.parse(index) -- Refresh all ids lines etc.. + tai.parse() -- Refresh all ids lines etc.. --tai.debug() return true else -- New ID new path! - table.insert(tai[index].raw, "*"..id) - table.insert(tai[index].raw, path) - tai.parse(index) -- Refresh all ids lines etc.. + table.insert(tai.raw, "*"..id) + table.insert(tai.raw, path) + tai.parse() -- Refresh all ids lines etc.. --tai.debug() return true end @@ -250,18 +243,18 @@ end Remove a filename in the list of plugin of the id, if the id no have more prx, its erase! return false in case of error, true in success. ]] -function tai.del(index, id, path) +function tai.del(id, path) - local idx = tai.find(index, id, path) + local idx = tai.find(id, path) if idx then - table.remove(tai[index].raw, tai[index].gameid[id].prx[idx].line) + table.remove(tai.raw, tai.gameid[id].prx[idx].line) - if #tai[index].gameid[id].prx == 1 and (id != "KERNEL" and id != "main" and id != "ALL" and id != "NPXS10015" and id != "NPXS10016") then -- remove section if not have nothing more prx! - --os.message("tai.del\n"..#tai[index].gameid[id].prx.."\nid "..id) - table.remove(tai[index].raw, tai[index].gameid[id].line[1]) + if #tai.gameid[id].prx == 1 and (id != "KERNEL" and id != "main" and id != "ALL" and id != "NPXS10015" and id != "NPXS10016") then -- remove section if not have nothing more prx! + --os.message("tai.del\n"..#tai.gameid[id].prx.."\nid "..id) + table.remove(tai.raw, tai.gameid[id].line[1]) end - tai.parse(index) -- Refresh all ids lines etc.. + tai.parse() -- Refresh all ids lines etc.. --tai.debug() return true end @@ -274,18 +267,19 @@ end Can send a path to sync or use the default. Synchronize all the changes made so far with the library. ]] -function tai.sync(index, path) - if tai[index].raw then - files.write(path or tai[index].path, table.concat(tai[index].raw, '\n')) +function tai.sync(path) + if not files.exists("ur0:tai/") then files.mkdir("ur0:tai/") end + if tai.raw then + files.write(path or tai.path, table.concat(tai.raw, '\n')) end end -function tai.debug(index) +function tai.debug() return nil --[[print("### CONFIG.TXT ##\n") - if tai[index].raw then - for i=1,#tai[index].raw do - print("#%03d: %s\n",i,tai[index].raw[i]) + if tai.raw then + for i=1,#tai.raw do + print("#%03d: %s\n",i,tai.raw[i]) end end print("##################\n")]] @@ -302,4 +296,4 @@ print("Del: %s\n",tostring(tai.del("NPUG80318", "ux0:adrenaline/adrenaline.suprx tai.sync() buttons.waitforkey() err() -]] \ No newline at end of file +]] diff --git a/AUTOPLUG2/scripts/thread/thread_plugins.lua b/AUTOPLUG2/scripts/thread/thread_plugins.lua index 06abbf7b..3a08cd23 100644 --- a/AUTOPLUG2/scripts/thread/thread_plugins.lua +++ b/AUTOPLUG2/scripts/thread/thread_plugins.lua @@ -13,13 +13,23 @@ PLUGINS_PORT = channel.new("PLUGINS_PORT") cont_global = PLUGINS_PORT:pop() cont_plugins = 0 +function tableSortSectionAsc(a,b) + return (a.section < b.section) or (a.section == b.section and a.name < b.name) +end + if wlan.isconnected() then if http.getfile(string.format("https://raw.githubusercontent.com/%s/%s/master/plugins/plugins.lua", APP_REPO, APP_PROJECT), "ux0:data/AUTOPLUGIN2/plugins/plugins.lua") then LANGUAGE = {} dofile("ux0:data/AUTOPLUGIN2/plugins/plugins.lua") --Plugins!!! dofile("plugins/plugins.lua") - if #plugins > 0 then table.sort(plugins, function (a,b) return string.lower(a.name) 0 then + if tsort == 1 then + table.sort(plugins, function (a,b) return string.lower(a.name) 0 then for i=1,#plugins do diff --git a/Changelog.txt b/Changelog.txt index 652a359c..fc0006ca 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,10 @@ +# v1.04 ++ Fixed missing string in Chinese and Turkish Systems (Again) ++ Now plugins will only be installed to ur0:tai/config.txt . ++ Added support to Reload onfig.txt for userland plugins (Only for plugins which not require reboot). ++ Now the section where each plugin would be installed to config.txt is added at plugins list, under plugin description. ++ Now plugins list can be sorted by: alfabetic or section, by pressing L/R. + # v1.03 + Added support to install extra applications that require some plugins. @@ -27,4 +34,4 @@ - Download/Install ITLS-Enso and Battery fixer (vpk) - Set a Custom Image (Custom Boot Splash is required) - Set a Custom Warning Message (Custom Warning is required) -- Set Level Transparent (Transparent Impose is required) \ No newline at end of file +- Set Level Transparent (Transparent Impose is required) diff --git a/Translations/Langdatabase.lua b/Translations/Langdatabase.lua index 161bcea0..da6585cf 100644 --- a/Translations/Langdatabase.lua +++ b/Translations/Langdatabase.lua @@ -1,11 +1,11 @@ Online_Langs = { -{ id = "ENGLISH_US", version = "01.07", author = "Yoti" }, -{ id = "ITALIAN", version = "01.09", author = "TheHeroGAC" }, -{ id = "JAPANESE", version = "01.07", author = "Kouchan" }, -{ id = "SPANISH", version = "01.10", author = "gvaldebenit" }, -{ id = "CHINESE_S", version = "01.11", author = "yexun1995" }, -{ id = "FRENCH", version = "01.11", author = "Chronoss09" }, -{ id = "GERMAN", version = "01.07", author = "Schn1ek3" }, -{ id = "RUSSIAN", version = "01.10", author = "Yoti" }, -{ id = "POLISH", version = "01.06", author = "Gameplay World's" } +{ id = "ENGLISH_US", version = "01.08", author = "Yoti" }, +{ id = "ITALIAN", version = "01.10", author = "TheHeroGAC" }, +{ id = "JAPANESE", version = "01.08", author = "Kouchan" }, +{ id = "SPANISH", version = "01.11", author = "gvaldebenit" }, +{ id = "CHINESE_S", version = "01.12", author = "yexun1995" }, +{ id = "FRENCH", version = "01.12", author = "Chronoss09" }, +{ id = "GERMAN", version = "01.08", author = "Schn1ek3" }, +{ id = "RUSSIAN", version = "01.11", author = "Yoti" }, +{ id = "POLISH", version = "01.07", author = "Gameplay World's" }, } diff --git a/plugins/plugins.lua b/plugins/plugins.lua index 249eb266..6eefb1c9 100644 --- a/plugins/plugins.lua +++ b/plugins/plugins.lua @@ -50,6 +50,7 @@ Online_Plugins = { { name = "PSOneScrot by cuevavirus v0.1", path = "psonescrot.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_PSONESCROT"], KEY = "INSTALLP_DESC_PSONESCROT", link = "https://raw.githubusercontent.com/cuevavirus/PSOneScrot/master/README.md", }, { name = "Cpu Affinity Changer by GrapheneCt v2.0", path = "CpuAffinityChanger.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_CPUAFFCHANGER"], KEY = "INSTALLP_DESC_CPUAFFCHANGER", link = "https://raw.githubusercontent.com/GrapheneCt/Affinity-Changer/master/README.md", }, { name = "Sharpscale by cuevavirus r3", path = "sharpscale.skprx", section = "KERNEL", version = "0003", desc = LANGUAGE["INSTALLP_DESC_SHARPSCALE"], KEY = "INSTALLP_DESC_SHARPSCALE", link = "https://raw.githubusercontent.com/cuevavirus/Sharpscale/master/README.md", }, +{ name = "RapidMenu by cuevavirus r1", path = "rapidmenu.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_RAPIDMENU"], KEY = "INSTALLP_DESC_RAPIDMENU", link = "https://raw.githubusercontent.com/cuevavirus/Rapidmenu/master/README.md", }, --Boot_config.txt { name = "Custom Boot Splash by Princess of Sleeping", path = "custom_boot_splash.skprx", section = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_CUSTOMBOOTSPLASH"], KEY = "INSTALLP_DESC_CUSTOMBOOTSPLASH", link = "https://raw.githubusercontent.com/Princess-of-Sleeping/PSP2-CustomBootSplash/master/README.md", }, @@ -76,6 +77,7 @@ Online_Plugins = { { name = "NoSharedFb v1.0", path = "NoSharedFb.suprx", section = "main", version = "0001", desc = LANGUAGE["INSTALLP_DESC_NOSHAREDFB"], KEY = "INSTALLP_DESC_NOSHAREDFB", link = "https://raw.githubusercontent.com/GrapheneCt/NoSharedFb/master/README.md", }, { name = "TransparentImpose v1.0 by GrapheneCt", path = "TrImpose.suprx", section = "main", config = "trimpose.txt", configpath = "ur0:data/", version = "0001", desc = LANGUAGE["INSTALLP_DESC_TRIMPOSE"], KEY = "INSTALLP_DESC_TRIMPOSE", link = "https://raw.githubusercontent.com/GrapheneCt/TransparentImpose/master/README.md", }, { name = "Quietshot v1.0 by cuevavirus", path = "quietshot.suprx", section = "main", path2 = "quietshot.suprx", section2 = "NPXS10095", version = "0001", desc = LANGUAGE["INSTALLP_DESC_QUIETSHOT"], KEY = "INSTALLP_DESC_QUIETSHOT", link = "https://raw.githubusercontent.com/cuevavirus/Quietshot/master/README.md", }, +{ name = "ftpeverywhere v1.0 by teakhanirons", path = "ftpeverywhere.suprx", section = "main", version = "0001", desc = LANGUAGE["INSTALLP_DESC_FTPEVERYWHERE"], KEY = "INSTALLP_DESC_FTPEVERYWHERE", link = "https://raw.githubusercontent.com/teakhanirons/ftpeverywhere/master/README.md", vpk = string.format("https://github.com/%s/%s/raw/master/vpks/%s", APP_REPO, APP_PROJECT, "NoSleep.vpk"), }, --All { name = "PSV-VSH MENU by joel16 v3.4", path = "vsh.suprx", section = "ALL", path2 = "kuio.skprx", section2 = "KERNEL", version = "0001", desc = LANGUAGE["INSTALLP_DESC_VSHMENU"], KEY = "INSTALLP_DESC_VSHMENU", link = "https://raw.githubusercontent.com/joel16/PSV-VSH-Menu/master/README.md", },-- Need kuio.skprx diff --git a/version b/version index b8cf7411..66d53fc9 100644 --- a/version +++ b/version @@ -1 +1 @@ -16973824 \ No newline at end of file +17039360 \ No newline at end of file diff --git a/vpks/NoSleep.vpk b/vpks/NoSleep.vpk new file mode 100644 index 00000000..6e637b0f Binary files /dev/null and b/vpks/NoSleep.vpk differ