devOSD / nextOSD Help & Tutorial

A japanese galge/eroge/visual novel translation helper

Table of contents
About Installation Usage tutorial Forwarder tutorial Tips & tricks
devOSD/nextOSD is a japanese galge/eroge/visual novel translation helper, transparent overlay and text to speech utility. Requires: .net framework 4.5
Discussion: HongFire
Download: nextOSD_build140928 name dictionary? tcp forwarder? changelog

Major features

Translation Sources Atlas (internal via API), LEC trans (via clipboard hook), Translation Aggregator (via clipboard hook), Forwarder (via built-in server)
Text-to-Speech Supports all Speech API compatible voices. Requires voice to support respective language (eg Japanese). Advanced filtering and regex available.
Romanization Internal romanization via Kakasi library.
Text History View last N levels of seen text if you missed something or want to go back to it.
RegEx engine Replace and format any text before processing. Unlimited rules, processing follows order.
Name replacement Replace names in written / spoken text. Modify pronounciation.
JNMDict integration Support for jmndict name translation to automatically fill proper name data (download the dictionary component)

More features

Auto-clicker Hold right shift to simulate mouse clicks every 50ms while held. Used when fast-forward is not implemented in-game.
Window snapping Snap to edges of primary display. Both in full and compact mode.
Flexible interface Compact mode, toggling of visual elements, font & window size..
Locale info List all language properties of the operating system
devOSD NEXT is fully portable and does not require administrative permissions per se.
However it does require read/write access to it's own directory.
As such it's best to not put it in Program Files, root C drive or any other protected folder.
My documents or Downloads should work without problems.
  1. Download & Extract to a folder of your chosing
  2. OPTIONAL: download the dictionary component and make sure you extract the xml into the nextOSD folder
  3. OPTIONAL: download other 3rd party components and put them in the provided sample subfolders with util_ so they can be called from the taskbar context menu
  4. Run nextOSD.exe. If the update check detects a new version it is strongly advised to install it by hitting F9.
Note: Due to this version being in constant development the update check is mandatory for now and although downloading the new versions is optional I recommend keeping devOSD up to date. Builds are automated and you will get the latest version as soon as the code changes.
Usage Tutorial

Phase 0: Essential 3rd party tools - recommended ones are bold

To get the text from the game that needs to be translated we attach to addresses in it's memory while it's running. That process is called "hooking". Based on the tool used to hook the game we have the following:

Phase 1A: Game hooking with ITH (Interactive Text Hooker)

  1. Start the game. Pay attention to it's executable program name.
  2. Start ITH ignoring priviliges dialog
    (Unless you want to hook into a game that runs as admin. In that case you need to start ITH with admin privileges as well).
  3. ITH - Options > check Auto Copy to Clipboard (required only the first time)
  4. ITH - Process > Select game's process (executable name) from the list and hit Attach
  5. GAME - start playing a new game / load until you get some text output that needs translating.
  6. ITH - select the dropdown ending in ConsoleOutput and switch it around until you see a thread which contains the current text in the text area below
  7. ITH - if no thread contains the text that needs translation then your options are to either try a different hooker/version or find/make an Hcode. The HF agth thread is a place where you can find/post Hcodes.

Phase 1B: Game hooking with AGTH (Anime Games Text Hooker)

Case 1: Start game process with agth and attach to it immediately

Case 2: Attach agth to an already running game process

Both cases proceed here.

Phase 2: Basic devOSD usage - Overlay modes and settings

Phase 3: Advanced devOSD usage - RegEx manipulation, replacements, repetitions

Name and text replacement

  1. F1 to enter visual editor mode. If you downloaded the nameDictionary it will be loaded at this point to supply context-sensitive name translation.
    Loading happens only if you use the editor and that is only once per devOSD startup. Due to the database consisting of 300k+ entries it will double the ram usage of devOSD when it is loaded in memory.
  2. Select any text and right-click to get get suggestions from name dictionary (in case of names, dictionary needs to be installed) or manually add a replacement
  3. Either way you are sent to the Text and Speech Replacement list (F3)
  4. Add translation if necessary. You can also have custom text sent to the speech module if the default pronounciation does not match. Use hiragana or katakana in the voice field for more natural sounding speech.
  5. Order matters. If one short replacement word is a part of another longer one - the longer should be placed higher as we don't want to replace only a part of it when encountered.
  6. To avoid collisions and further confusion, specify a group for your replacement (normally by game) and toggle the entire group when needed (click square in the group field to toggle).

RegEx Rules and formatting

  1. F2 to enter global reg-ex replacement dialog.
  2. Checkbox on top toggles testing panel where you can test the enabled items in the entire reg-ex chain.
  3. RegEx is used to filter out unwanted parts of sentences like names preceding spoken dialogue and garbage characters among other.
  4. Search field has to match the entire text to be able to use the result in a backreference.
  5. Some sample RegEx is provided by default.
  6. As with Text replacement, order matters and everything is executed according to it, top to bottom.
  7. Even though RegEx is compiled and reused, it is good practice to disable unused entries to avoid additional processing and possible collisions.

Text Limits


  1. If you have repeating sentences due to some game engine hit F4 and check Detect repeating sentences under Repetition filter.
  2. At the least you need to specify the number of times the sentences repeat to split the text accordingly.
  3. If your text has some garbage at the start or the end - specify the appropriate offsets - otherwise leave them at 0.
    EXAMPLE Input: ABCD [Some text.Some text.Some text.] ...
    You need 4(ABCD) + 2(space & [) = 6 START offset and then 5(] ...) END offset.
    Repetition testing Then a Split count of 3 as we have 3 repetitions. Hit the => in the test panel to preview.
  4. Sentences that cannot be split via the above rules will remain intact but a warning will be issued in the status bar.
Forwarder Tutorial / TCP source
Some term definitions:
  1. Start devOSD on HOST computer
  2. OPTIONAL: in the SERVER choose a specific interface to bind to. Right Click > Server Source. Windows might ask for firewall clearance.
  3. Enable server option (Ctrl+9) on the SERVER (by default it listens on all interfaces
  4. Start devOSDclient on the GUEST machine / remote computer
  5. Enter the IP of your HOST (you can get a list of local ip addresses using [ ? ] button in the FORWARDER.)
  6. In the FORWARDER - connect, check clipboard monitor, optionally enable auto-reconnect
  7. You will be notified by the SERVER if the connection was successful.
  8. Hook up the game running inside the GUEST with ITH or AGTH as you normally do on the HOST. Make sure to enable clipboard copy in them.
If everything is set up correctly you will get new text on the SERVER every time the GUEST's clipboard changes.
Forwarder has its own Autoclick implementation which is always ON. Hold right shift and be careful where you point that thing.
Tips & tricks

Most OLDER fullscreen only games can only be hooked using the SERVER/FORWARDER and another computer (smartphone client is in the works, no ETA or promises tho)

Some NEWER game engines' windows can be stretched or support borderless fullscreen mode when maximized.
In certain cases they set themselves Always-on-top which collides with devOSD's setting and it stays in the background as it loses focus.
This can in fact be overridden and until I implement it in devOSD you can use the attached Autohotkey script: toggleOnTop.ahk
To use it Download and install Autohotkey Run the downloaded script and it will sit in your system tray listening for the specific keystroke.
Focus the game window and hit Ctrl+~ (tilde) to toggle its always on top status.

Another useful script is windowDragging.ahk which allows you to hold the middle mouse ANYWHERE over ANY WINDOW and then drag it around with the left mouse button and moving the mouse (while not letting go of the middle mouse)

©2023 | MΛɣ ĐΛʁκɲƎƾƾ ƎᵯβʁΛↄƎ ᵯƎ ΛɲĐ ƎǂƎʁɲıǂɣ ƑΛↄƎ ᵯƎ Λƾ Λ ɲʋǂƎ ʋƑ ĐΛᵯɲΛǂıʋɲ ϟıǂƾ ᵯɣ ϟƎΛʁǂ ʋƑ ƾǂıĿĿɲƎƾƾ