A PlayStation 2 GUI application for editing config files for:
- FMCB, FHDB
- OSDMenu, OSDMenu MBR, HOSDMenu
- PS2BBL Extended and PSXBBL Extended.
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.
Forked from OSDMenu Configurator by @pcm720 to add the other configurators and simpler UX
Choose Free McBoot, Free HDBoot, OSDMenu, HOSDMenu, OSDMenu MBR, PS2BBL, PSXBBL, and open the corresponding config.
-
OSDMenu repository for usage and installation.
-
PS2BBL Extended repository for usage and installation.
-
Hold SELECT while booting to force all devices/choices to be shown. Your configuration file is still applied for hiding/showing apps to configure.
Config Lookup order for each application
These are the orders and files that each app looks for when loading. First found file is used by each app.
R3CONFIGURATOR will let you search for and edit any of these config file paths.
mass:/FREEMCB.CNF->mc0:/SYS-CONF/FREEMCB.CNF->mc1:/SYS-CONF/FREEMCB.CNF
mass:/FREEHDB.CNF->hdd0:__sysconf/FMCB/FREEHDB.CNF->mc0:/SYS-CONF/FREEHDB.CNF->mc1:/SYS-CONF/FREEHDB.CNF
-
mc0:/SYS-CONF/OSDMENU.CNF->mc1:/SYS-CONF/OSDMENU.CNF -
xfrom:/osdmenu/OSDMENU.CNF -
mc0:/SYS-CONF/OSDGSM.CNF->mc1:/SYS-CONF/OSDGSM.CNF
-
hdd0:__sysconf:pfs:/osdmenu/OSDMENU.CNF -
hdd0:__sysconf:pfs:/osdmenu/OSDGSM.CNF
-
hdd0:__sysconf:pfs:osdmenu/OSDMBR.CNF -
xfrom:/osdmenu/OSDMBR.CNF(PSX) -
hdd0:__sysconf:pfs:osdmenu/OSDGSM.CNF -
xfrom:/osdmenu/OSDGSM.CNF(PSX)
CONFIG.INI(CWD: Current Working Directory)- device PS2BBL launched from
device:/PS2BBL/CONFIG.INI - if launched from HDD
hdd0:__sysconf:pfs:/PS2BBL/CONFIG.INI,hdd1:__sysconf:pfs:/PS2BBL/CONFIG.INI mc?:/SYS-CONF/PSXBBL.INI(PSX DESR only; skipped on PS2 hardware)mc?:/SYS-CONF/PS2BBL.INI
-
FREEMCB.CNF - Free McBoot global, autolaunch and hotkeys
-
FREEHDB.CNF - Free HDBoot global, autolaunch and hotkeys
-
OSDMENU.CNF— OSDMenu/HOSDMenu global options and menu entries (including names, paths and arguments). -
OSDMBR.CNF— OSDMenu MBR options -
OSDGSM.CNF— eGSM options with default settings and per–title ID overrides
The config is saved to the same location the config was loaded from
Running and r3configurator.cnf
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.
R3Configurator can configure itself and apply changes immediatly. r3configurator.cnf will be saved in CWD of r3configurator.elf
video_mode:auto,ntsc,pal,480p
swap_buttons:0/1(also acceptsfalse/true,no/yes,off/on)
default_language:- language code loaded from
scripts/lang/strings_<code>.lua(example:en,pt,es)
- language code loaded from
- Main page visibility toggles (
0/1):show_freemcbootshow_freehddbootshow_osdmenushow_osdmenu_mbrshow_hosdmenushow_ps2bblshow_psxbbl
- UI color keys (
RRGGBBformat only):cross,square,triangle,circleselected,selected_dim,unselected,dim,background
Language and font overrides
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, 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)-DAPP_VERSION_OVERRIDE=<value>to override the app version shown in UI/splash and used by default forSAS/title.cfgVersion=-DSAS_TITLE_VERSION=<value>to override onlyVersion=inSAS/title.cfg(defaults toAPP_VERSION_OVERRIDEwhen set, otherwise git describe)
The repository includes a VS Code task named Lua: Syntax Check:
- Windows: runs
tools/lua_syntax_check.ps1(expectsluac.exeinPATH, orLUACenv var set). - Linux/WSL/macOS: runs
tools/lua_syntax_check.sh(expectsluacinPATH, orLUACenv var set).
Run it from VS Code with Terminal -> Run Task... -> Lua: Syntax Check.
Distributed under the GNU GPL-3.0 License. See LICENSE for details.
- Spanish
- VizoR
- Portuguese
- nuno
