Volunteer
Help translate New Love Plus+
Most fan translations stall for lack of hands, not lack of skill. There are two ways in: the browser workbench below, which needs no tools and no install, or the patcher repo for code and asset pull requests. Open tasks for both live in the Discord #volunteer-tasks forum, one post per task.
Translate in your browser: the Localization Workbench
The workbench is a set of offline HTML pages for the work that is left: untranslated Japanese dialogue, leftover SMS and menu strings, and UI image review. No Python, no git, no toolchain. Download it, open one file, translate or audit, then post your saved file to Discord.
- Download the workbench from GitHub (the green Code button, then Download ZIP, or clone it), and unzip it somewhere.
- Open
index.htmlfrom the folder root in Chrome, Edge, or Firefox. It has three tabs: Scripts, Strings, Images. - Pick a tab, translate or audit some lines, then click Save progress. It downloads a JSON file. Each tab keeps its edits until you close the window, but Save is what writes the file.
- Post that JSON file in the Discord #translated-work-to-review channel.
| Tab | What you do | File you post |
|---|---|---|
| Scripts | Translate leftover Japanese dialogue lines | nlpp-contrib-YYYY-MM-DD.json |
| Strings | Translate leftover SMS and menu / system strings | nlpp-strings-YYYY-MM-DD.json |
| Images | Audit UI images: mark OK, mark needs-fix, or upload a same-size fixed PNG | nlpp-images-YYYY-MM-DD.json |
Leave these exactly as they are, or Save will block:
- Name tokens, character for character:
▲高嶺**▲,▲主人公*▲(keep the triangles and the*stars). - Control marks
※and▼, and●markers wherever the reference line has them. - Placeholder-only or punctuation-only lines like
○○○: don't "fix" them, leave them.
SMS lines have a length limit and the Strings tool warns when the English runs long: shorten it. Replacement images must be PNG at the exact same width and height as the original; the tool embeds them in the JSON, which is expected.
The tab list shows N left · total, meaning lines still needing work, not lines done. Use Jump or Last spot to return to where you were. On the Images tab, set a light checker Preview background so transparent text is readable; it doesn't change the PNG. If a tool looks empty or stuck after you swap in a newer copy of the folder, hard-refresh with Ctrl+F5.
Open tasks
Pulled from the open posts in the Discord #volunteer-tasks forum. The list is not live and does not show who is already on a task. Open the forum post, then reply there to claim it or offer to help. More than one person on a task is fine.
Live task board loads here from the forum's open posts. If it stays on this message, browse them directly in #volunteer-tasks on Discord.
Reply on a task's forum post to say you're picking it up or want to help. More than one person on the same task is fine, and coordinating there keeps the effort from being wasted.
Playtesting
The single fastest way to help right now is to play a patched build and report what's wrong. More playtesters means bugs and bad lines get caught in days instead of months, which is most of what's slowing development down. No git, no tools, no Japanese needed.
Every bad translation, typo, untranslated string, overflowing text box, or crash you find and report is one the team doesn't have to hunt for itself. Post findings as a new post in the Discord #bug-reports forum: what you saw, where in the game it happened, and a screenshot if you can get one.
Contributors whose bug reports or translation catches lead to a fix are credited on the Credits page, same as code and translation contributors.
Where the help is needed most
Dialogue tooling can now build and inject English scripts into a playable CIA. Throughput is limited mainly by unfinished localisation:
- Japanese → English translators and proofreaders for the remaining Rinko / Nene scripts (and SMS / phone text). The Localization Workbench above is the no-setup route.
- Optional: reverse-engineering / tooling for leftover UI textures and hard pane / layout limits.
- Optional: better bulk texture export for visual mods. (See also NLPPCTR, a community side project for Citra custom textures like eye colours and contact lenses.)
Japanese → English translators and proofreaders are where you'd have the most impact right now; RE / homebrew devs, the optional items above are yours. Reach out on Discord.
Graphics
The graphics tasks need someone comfortable with image-editing software such as Photoshop, GIMP (free), or Krita, to redraw and retouch images baked into the game: menu art, UI elements, signage and other text inside textures. Using AI tools to alter or regenerate parts of an image is fine too, as long as the result matches the original style and resolution.
No open graphics post that fits? Reach out on Discord or check #volunteer-tasks for what's current.
Contributor notes
Working notes for translators and tooling contributors: field notes, not a spec. The authoritative details live in the EngPatcher repo (TECHNICAL.md and image_map.py); where this and the repo disagree, the repo wins.
Dialogue scripts (DBIN2 / XML)
- 578 dialogue files in the main
scriptpack.NLP_01/NLP_02are separate packs. Don't cross them; wrong-pack scripts can crash a route (k104-class breakage). - Prefixes:
t= Manaka,k= Rinko,a= Nene,p= shared / common. - Line budget is roughly 28 characters per line, about 4–5 lines; panes vary, so shorten the English if it overflows in-game.
- Keep dialogue tokens like
▲name*▲intact, and keep the JP punctuation forms (!?…()) the format expects. - Drop a lone
●; keep[●](that's a heart). - Packed output is Shift-JIS in the game's binary format; the XML workflow is NLPTextTool-compatible.
System & menu text (TextResource)
- Main table
textresource_jpn.trb: system, menus, minigames, choices (~25k string slots; the build shows 24,872 / 25,346 with English). - Rebuilt in Python (
patch_textresource.py);Trb2xlsx.exeis only a character-codebook lookup, not part of the build. - Rough wrap heuristics: system dialog ~8–9 chars/line, questions ~18, some multi-answer lines close to exact width (~26). Playtest rather than trusting the counts.
- The resident table (
textresource_resident_jpn.trb) is not dead: it holds the day-counter strings and the heroine display-name table. Different format (TOPchunks), and not a translation-progress number. - Strings are often context-free (no string → scene map), so system text needs someone who has seen the scene. The 98% bar stays labelled “machine pass, unreviewed.”
Graphics (img.bin)
- Never full-rebuild
img.bin. Splice only the packages you changed, and each output package must stay at or under its original size. Growing a PACK black-screens the game. - BCLIM must match the original exactly: same format (read the footer /
parse_bclim) and same dimensions. Growing a texture needs BCLYT work, which isn't done. - Gold UI path is an archive splice under Azahar mods / Luma LayeredFS. Citra / Azahar custom texture hash overrides (
use_new_hash) were the unstable route; prefer the splice. - Example packages: keyboard 5190, softkeys 5238, Options plates 5245, display settings 5247, SysPopup 5259, Myroom 5380, MyroomHeader 5575, SMS maildic 92. The full map is in
image_map.py.
Phone / SMS (maildic)
Girl SMS bodies live in img.bin package 92 (maildic_m/n/r.mdc), not in textresource_jpn.trb. English drafts exist under assets/sms_en/ but aren't enabled in the default bake (--include-sms turns them on). All 1,822 messages are still Japanese in a gold build.
Honest open items
- Name input: the kana → kanji grid overflows on roman letters. The current fix suppresses kanji conversion and takes kana at face value: functional, still rough.
- Saves: the reading-system RE is incomplete, which blocks a proper save editor and some name-localization edges.
- SpotPass: the live services are gone and forcing
info.datingestion has failed. Archives exist, but this is unsolved. - macOS: not supported; the patcher is Windows x64 + Python.
What's left, roughly in priority order
- Human review of the machine-pass TextResource: over a thousand lines are still Japanese or rough.
- Rinko and Nene routes: still mostly Japanese past the early baseline; needs native JP→EN help.
- SMS / phone text: 0 of 1,822 in a gold build; the tooling exists but isn't on by default.
- Name-input graphics polish.
- Save reading-system RE: unlocks a save editor and deeper name work.
- SpotPass revival.
- Growing textures or editing models: not possible on the current splice path.
- macOS support; shortening the first-run bake when no prebuilt
release/pack is present.
Playtesting still comes first (see Playtesting above). Everything on this list moves faster with bug reports pointing at the worst lines.
Getting started with Git & GitHub
What to install, if you've never used git before:
- Git itself
- A free GitHub account
- Any code editor (VS Code is a fine free default)
- Optional: GitHub Desktop if the command line feels intimidating at first
Then the workflow: fork the repo to your account, clone it locally, create a branch, make your edit, then commit and push, and finally open a pull request. GitHub's forking guide and beginner docs cover the mechanics of each step better than anything worth rewriting here.
Recommended tools (optional, not required)
Ghidra: free, open-source, the standard tool for digging into the 3DS binary: disassembly, tracing how the game references its text and graphics containers, understanding the .trb format from the inside.
Cursor: worth mentioning mainly as a research accelerator, not a coding assistant first: pointed at an unfamiliar binary-parsing function or the patcher's Python codebase, it's genuinely faster at "what does this do and why" than reading cold, and it's useful for one-off extraction/insertion scripts. The coding-assistant side is real too, just secondary to that.
Cursor is a paid tool (Cursor Pro runs about $20/month) and entirely optional. Contributors are just as welcome using VS Code, plain command-line tools, or their own established RE workflow. This is "what's working for us," not a bar to entry.