From a75fcbef87a8a970bd97dfc9da47a1b5bc9d4bfc Mon Sep 17 00:00:00 2001 From: Matthew Stanley <1379tech@gmail.com> Date: Mon, 27 Jul 2026 15:02:34 -0700 Subject: [PATCH] docs(readme): frame features as framework capabilities, not a fixed roster Three corrections to framing that made the project read smaller than it is. - Drop the 'eight titles brought up so far' count from the hero. A number reads as a ceiling; the point is that bringing up a new game is configuration and reverse engineering, not new engine work. - Widescreen: 'six of the seven titles support it' described this ecosystem's games rather than the capability. The cull-widening, FOV and aspect machinery is framework tooling any project can enable from a [widescreen] block, third-party forks included. - Localization: retitle 'Play a Japanese-only game in English' to 'Swap language on the fly'. The mechanism has no built-in notion of a default language -- it is any source to any target, switched live. Describe what is actually hard about it: substituted text is drawn through the game's own glyph routine with per-character advances calibrated from real ink width in VRAM, plus auto-fit condensing, so no engine change or regeneration is needed to add a language. Tables are TOML (translations/*.toml, one column per language, hot-reloaded), verified against text_xlate.cpp and Tsumu's shipped table -- docs/ STRING_TRANSLATION.md still calls them translations.json, which is stale. Also removes the aging Tomba demo-video embed; the screenshot grid carries the visual pitch now. Anchors, images and file links all re-verified. --- README.md | 51 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 95974bd2..bd92aab6 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,11 @@ disc into a native executable — MIPS R3000A translated to C, compiled to x64, linked against a hardware-accurate runtime. Not an emulator: the game becomes a program your CPU runs directly. -Eight titles have been brought up on it so far, seven in this ecosystem and one -by the community. They ship as standalone builds with widescreen, mods, and a -launcher — and, thanks to a bundled open-source BIOS, most need no BIOS dump at -all. +Titles brought up on it ship as standalone builds with widescreen, mods, live +language switching and a launcher — and, thanks to a bundled open-source BIOS, +most need no BIOS dump at all. The framework is general-purpose: bringing up a +new game is a matter of configuration and reverse engineering, not new engine +work. @@ -44,7 +45,7 @@ yet fully validated end to end. | *Mega Man X4* | [MegaManX4Recomp](https://github.com/mstan/MegaManX4Recomp) | [releases](https://github.com/mstan/MegaManX4Recomp/releases/latest) | Playable; 2D widescreen. | | *Mega Man X5* | [MegaManX5Recomp](https://github.com/mstan/MegaManX5Recomp) | [releases](https://github.com/mstan/MegaManX5Recomp/releases/latest) | Playable; 2D widescreen. | | *Mega Man X6* | [MegaManX6Recomp](https://github.com/mstan/MegaManX6Recomp) | [releases](https://github.com/mstan/MegaManX6Recomp/releases/latest) | Playable; stages, controller, save/load; 2D widescreen to 21:9. | -| *Tsumu Light* | [TsumuLightRecomp](https://github.com/mstan/TsumuLightRecomp) | [releases](https://github.com/mstan/TsumuLightRecomp/releases/latest) | Japanese-only title (SLPS-02253); first consumer of [on-the-fly translation](#play-a-japanese-only-game-in-english). | +| *Tsumu Light* | [TsumuLightRecomp](https://github.com/mstan/TsumuLightRecomp) | [releases](https://github.com/mstan/TsumuLightRecomp/releases/latest) | Japanese-only title (SLPS-02253); first consumer of [live language switching](#swap-language-on-the-fly). | | *Xenogears* — **community** | [OpokXeno/xenogears-recomp](https://github.com/OpokXeno/xenogears-recomp) | — | Independent project by [@OpokXeno](https://github.com/OpokXeno), who also contributed widescreen cull-site work upstream. | Each game repo carries its own build/run instructions, keyboard/controller @@ -127,10 +128,15 @@ Not a stretch and not a crop — a genuinely **wider field of view**, computed a recompile time by widening the game's own projection and culling maths. 4:3 output stays byte-identical when widescreen is off. -Six of the seven titles support it, across both 3D and 2D engines. 2D is the -harder case: a sprite engine has no camera to widen, so the background tile -ring, streamer and packet budget all have to be widened in step with the -renderer. +This is framework tooling, not a per-game bolt-on. Any project built on +PSXRecomp can enable it from a `[widescreen]` block in its `game.toml` — the +generic cull-widening, FOV and aspect machinery lives here, and bringing up a +new title is a matter of locating that game's cull sites rather than writing new +rendering code. + +It works on both 3D and 2D engines. 2D is the harder case: a sprite engine has +no camera to widen, so the background tile ring, streamer and packet budget all +have to be widened in step with the renderer.
@@ -169,16 +175,27 @@ Tomba! ships three today — widescreen, skip-FMV, and a warp debug menu that re-enables the developers' own hidden menu. Full format in [`docs/MOD_PACKAGES.md`](docs/MOD_PACKAGES.md). -## Play a Japanese-only game in English +## Swap language on the fly -A reusable localization layer captures the game's own strings out of memory and -substitutes translated bytes on the fly, so menus, tutorials and dialogue render -in a target language the original never shipped. It is multilingual by design — -English is simply the first target — and driven by `translations/*.toml` with a -language picker in the launcher. +A general localization layer captures the game's own strings out of memory and +substitutes translated bytes as it runs. Any source language to any target — the +mechanism has no built-in notion of a "default" language, so a Japanese-only +release can be played in English just as readily as an English one can be played +in another language. -*Tsumu Light* (SLPS-02253) is the first consumer. See -[`docs/STRING_TRANSLATION.md`](docs/STRING_TRANSLATION.md). +Switching is live. Tables are human-editable TOML under `translations/`, one +column per language, hot-reloaded while the game is running — and the launcher +carries a language picker. A translator can edit a line and see it in-game +without rebuilding anything. + +The hard part is glyphs, not strings. Substituted text is drawn through the +game's *own* glyph routine with per-character proportional advances calibrated +by measuring the real ink width of each glyph tile in VRAM, plus auto-fit +condensing so longer translations still fit a box sized for the original. That +means no engine changes and no regeneration to add a language. + +See [`docs/STRING_TRANSLATION.md`](docs/STRING_TRANSLATION.md); *Tsumu Light* +(SLPS-02253) is the first title using it. ## Renderers
Mega Man X6 at 16:9