A PlayStation 2 GUI application for editing OSDMenu-related config files from PlayStation 2.
This application is based on Enceladus by Daniel Santos.
Enceladus provides the Lua bindings, graphics, system, and I/O APIs.
See the Enceladus repository for the full project, documentation, and thanks.
Choose OSDMenu, HOSDMenu, or OSDMenu MBR and open the corresponding config.
See the OSDMenu repository for usage and installation.
OSDMENU.CNF— OSDMenu/HOSDMenu global options and menu entries (including names, paths and arguments).OSDMBR.CNF— OSDMenu MBR optionsOSDGSM.CNF— eGSM options with default settings and per–title ID overrides
The config is saved to the same location the config was loaded from
Run the ELF from your preferred method.
The app’s working directory (CWD) is where the ELF is launched from (e.g. mass0:/, mc0:/, mmce0:/).
- With
EMBED_VFS: the built-in script bundle is used; you can still override strings and font from CWD (see below). - Without
EMBED_VFS: place thescripts/directory (and optionallyres/if not embedded) and the ELF so that paths likescripts/ui.lua,scripts/lang/strings_en.lua, andscripts/font/font.ttfare available from CWD
The automated build comes with EMBED_VFS flag set, so all scripts are already embedded.
You can override the built-in strings and font by placing files in the current working directory (the directory from which the ELF is run).
- If a file named
strings.luaexists in CWD, it is loaded instead ofscripts/lang/strings_XX.lua - It must return a table with the same structure as the lang files (see
scripts/lang/strings_en.luafor keys and layout). This allows fully custom UI text without modifying thescripts/lang/tree - When this override is active, L1/R1 language cycling is disabled (the app does not scan
scripts/lang/for other languages)
- If a file named
font.ttfexists in CWD, it is used as the UI font - If not, the app falls back to
scripts/font/font.ttf(either on the filesystem or from the embedded VFS when usingEMBED_VFS=ON)
- UI strings are in
scripts/lang/strings_XX.lua(e.g.strings_en.lua,strings_fr.lua) - To add a language: copy
scripts/lang/strings_en.luatoscripts/lang/strings_<lang>.lua, then translate the values and keep all keys unchanged - If more than one
strings_*.luaexists inscripts/lang/and you are not using a CWDstrings.luaoverride, L1 / R1 on the main menu cycle the language
When a CWDstrings.luaoverride is used, L1/R1 language cycling is disabled
If you'd like to contribute your translation to the project:
- Fork the project
- Create a new branch (e.g.
translation_<language>) - Place your translation to
scripts/lang/strings_<2-letter language code>.lua - Commit the change and push it
- Open a pull request
Requires PS2SDK installed.
cmake -B build
cmake --build build-DOUTDIR=<dir>for custom output directory-DPOWERPC_UART=ONfor enabling stdout redirection on Deckard consoles-DEMBED_VFS=ONfor embedding the contents ofscripts/into the ELF so the app can run without external script files (e.g. from a single ELF on memory card)
Distributed under the GNU GPL-3.0 License. See LICENSE for details.
- Spanish
- VizoR