This repository is the C++/ps2build transition of RiptOPL. These guides include the production project's full documentation; feature and hardware parity are still being validated. The release targets are Korium, RetroAchievements and IncebtIon, all on ps2build. Check the migration ledger before treating an imported production feature as verified here.
Japanese & Unicode Game Titles
Show UTF-8 game names and optional per-game CFG titles using a selected font that contains the required glyphs. The original project also has a separate CJK fallback font loader; that loader remains unported here.
The font_CJK.ttf instructions below describe original Open-PS2-Loader #917. Current C++ builds do not load that separate fallback face. Copying it beside your settings will not enable missing glyphs here. See migration issue #20.
The interface or theme font stays in place. RiptOPL only uses a separate Unicode font for missing characters. This feature was introduced in PR #917. No custom font is shipped in the ELF and there is no settings toggle.
Original CJK fallback setup (port pending here)
- Use a RiptOPL build containing Unicode fallback support; an older ELF will not load the optional font.
- Obtain a properly licensed Japanese/CJK-capable TTF or OTF font. Prefer a compact font subset to avoid exhausting PS2 RAM.
- Name it
font_CJK.ttf(recommended),font_CJK.otf,font_Japanese.ttf, orfont_Japanese.otf. The names are tried in this order. - Place it directly beside your active
settings_riptopl.cfg, not just inLNG/. If you cannot find the settings file, save RiptOPL settings first. - Fully exit and restart RiptOPL. Loading is automatic at startup; no language or font toggle is required.
- Ensure game filenames actually contain valid UTF-8 text. Unicode fallback does not convert legacy Shift-JIS encoding.
Example files
mc0:/APPS/APP_RIPTOPL/ RIPTOPL.ELF settings_riptopl.cfg font_CJK.ttf
The folder above is an example only. Your active settings home may be elsewhere, including the other memory card, USB, or HDD. Always use the directory where settings_riptopl.cfg is saved for that installation.
Two different Japanese font paths
| Font | Purpose |
|---|---|
<settings home>/font_CJK.ttf | Unicode glyph fallback in game names with English or other menus (also works with custom themes). |
LNG/font_Japanese.ttf beside LNG/lang_Japanese.lng | Japanese interface language font, used when Japanese is selected in Settings → Interface → Language. |
If you have a suitable Japanese font in the language pack, you can copy it into the settings directory under the name font_CJK.ttf if the font's license permits. Leave the original language font in LNG/.
What is supported, and what is not
- Mixed Latin and Japanese characters in game titles, and missing glyphs that your own theme font does not provide.
- The game's startup ID, filename, Favorites identity, VMC, artwork mapping, storage-driver path and launch behavior remain unchanged.
- Automatic translation and Shift-JIS filename conversion are not included.
- Per-game CFG
Titlemetadata replaces game-list names when Show CFG Titles in Game Lists is enabled. Do not overwrite#Nameto force a translation.
Show CFG Titles in Game Lists (optional)
Settings → Interface → Show CFG Titles in Game Lists (off by default) makes each game row show the Title= line from that game's CFG, such as a Japanese title written by OPL Manager, instead of its file name. With Sort Games Alphabetically on (the default), lists sort by what they show.
- Display only. The file name stays the game's identity: renaming, Favorites, cover art, per-game settings and launching keep using it. Rows without a usable
Title(missing, empty, not valid UTF-8, or containing control characters) show the file name. Titles are kept up to 127 bytes, cut on a character boundary. - Japanese titles need a font: a selected language/theme font with those glyphs; the separate
font_CJK.ttffallback is still pending in this C++ repository, exactly like a Japanese file name. - Renaming keeps the title. A PS2 game's CFG is keyed by its game ID, so a renamed game keeps its title. A PS1 (VCD) game's CFG is keyed by its file name, so renaming it leaves the old CFG, and its title, behind.
- Slower list loads. Every list refresh reads every game's CFG once in the background. Rows appear with their file names first, then switch to their titles and re-sort. That is why the setting is off by default: on SMB, MMCE and MX4SIO a large library takes noticeably longer to settle.
- Folders and the Apps list are not affected. Turning the setting on or off rebuilds the game lists.
Original CJK build / test artifact
Download OPL-OFFICIALROLLING from the PR #917 Actions run (GitHub sign-in may be required). This is a compiled ELF ZIP with a build manifest, not a CJK-font bundle. Artifacts expire. You can also check Releases for builds containing the merged implementation. Hardware verification remains separate from successful CI. Back up your known-good ELF, settings and saves before updating.
Troubleshooting
| Symptom | Check |
|---|---|
| Japanese text displays as blank boxes | Verify font glyph coverage, the exact filename, its location beside the active settings file, and a complete restart. |
| Japanese menus work but English menus still show boxes in games | The font in LNG/ belongs to the Japanese translation. A second font copy belongs in the settings home. |
| Characters are garbled | The filename may be Shift-JIS or another encoding; font fallback requires valid UTF-8 input. |
| Only some Kanji display | Check the font's supported character set and the finite glyph texture atlas. |
| Game-list name ignores a per-game CFG Title field | Enable Show CFG Titles in Game Lists; use a valid UTF-8 Title= line. Font coverage is a separate requirement. |
The PS2 has 32 MiB of EE RAM. Full Japanese/CJK fonts can consume many megabytes. Use smaller appropriately licensed subsets where possible. The font renderer has four 256×256 glyph atlas pages per font; very large collections of distinct visible glyphs can exceed that budget. The font is loaded only once at startup, not during list scrolling.
Source reference: full documentation · wiki-ready page · interface languages.