Textractor and YomiNinja are both free tools that help Japanese learners read games. But they work completely differently — and that difference determines which games each one can handle. This guide explains both approaches, where each excels, and gives a clear decision tree.
How each tool extracts text
Textractor — memory hook injection
Textractor works by injecting a DLL into the running game process. It hooks the game's text-rendering function — the specific code call where the game passes a text string to the display system. By intercepting this call, Textractor captures the raw text string before it ever becomes pixels on screen.
The result is exact, unambiguous text. If the game says 「行くぞ」, Textractor receives 「行くぞ」 — every character correct, no visual interpretation involved. It also captures text that's only partially visible, or text that appears for a single frame before scrolling off.
The catch: it requires a compatible hook for each specific game engine. Textractor ships with hooks for common visual novel engines (Kirikiri, RealLive, BGI, some Unity configurations), but has no hooks for games with custom engines, console ports, or DRM-protected executables.
YomiNinja — screen OCR
YomiNinja never touches the game process. It takes a screenshot of the window, runs optical character recognition on the image, and extracts text from pixels. The extracted text is then rendered as an interactive overlay, and Yomitan popup dictionaries trigger on hover.
Because it only reads pixels, YomiNinja works on any game where text is visible on screen — regardless of engine, DRM, process protection, or platform. But it also inherits all of OCR's limitations: recognition errors on unusual fonts, furigana confusion, sensitivity to contrast and resolution.
Game compatibility
What Textractor can handle
Textractor works well on PC visual novels built on supported engines: Kirikiri/KiriKiriZ (the most common VN engine), BGI/Buriko General Interpreter, RealLive, NScripter, and some Unity titles with specific configurations. For these games, hook accuracy is essentially perfect.
It does not work on:
- Console ports (PS4/PS5/Switch ports where the engine has no hook)
- Games with fully custom engines and no public hook
- Games where text is rendered as pre-baked images rather than text strings
- Emulated games (the hook can't reach inside the emulator)
- Web-based VNs running in a browser
- Action games, JRPGs, and real-time games (Textractor is optimized for VN-style text flow)
What YomiNinja can handle
YomiNinja works on any application with visible text: every game engine, every DRM scheme, emulators, web VNs, video players with hardcoded subtitles, manga readers, and real-time action games. The only requirement is that the game runs in Borderless Windowed or Windowed mode.
Accuracy comparison
When Textractor is more accurate
When Textractor has a compatible hook, its text extraction is effectively 100% accurate. It receives the raw string the game intended to display — no optical ambiguity, no font-related errors, no confusion between visually similar kanji. For well-supported VN engines, nothing beats text hooking for accuracy.
When YomiNinja's OCR is accurate enough
For games with standard, clean Japanese text — dialogue boxes with printed fonts, reasonable resolution, high contrast — PaddleOCR and MangaOCR achieve practical accuracy rates that make reading viable. Most misrecognitions are immediately obvious from context and don't prevent understanding.
The problem cases are games with highly stylized fonts, very low resolution (emulated retro games), or text rendered with visual effects (shadows, outlines, glow). In these situations, OCR error rates increase noticeably. Google Cloud Vision handles these better than local engines.
Dictionary integration
Both tools support Yomitan-based popup dictionaries, but through different mechanisms:
- Textractor typically pipes extracted text to a separate browser window via clipboard or a texthooker page, where Yomitan operates in a standard browser context
- YomiNinja renders the Yomitan popup directly on top of the game via its built-in Chromium context — the lookup appears overlaid on the game window itself, not in a separate window
In practice, YomiNinja's integrated approach is smoother — the dictionary popup appears exactly where you're already looking.
Setup complexity
YomiNinja: download → install → import JMdict → select window → draw OCR template → play. Under 10 minutes for first use. No game-specific configuration required.
Textractor: download → launch alongside game → find the correct hook (often requires trying multiple options) → configure text filters. For well-supported games this is 5–10 minutes; for obscure games it can take much longer or may be impossible without community-contributed hook codes.
Side-by-side comparison
| Criteria | YomiNinja (OCR) | Textractor (Hook) |
|---|---|---|
| Works on any game | ✓ Yes — pixels only | ✗ Requires compatible hook |
| Works on emulators | ✓ Yes | ✗ No |
| Works on console ports | ✓ Usually | ✗ Rarely |
| Text accuracy | High (with OCR errors) | Near-perfect when hook works |
| Stylized fonts | MangaOCR handles most | Unaffected (reads strings) |
| Process injection | None | DLL injection into game |
| Anti-cheat risk | Minimal | Higher |
| Setup time | ~5–10 min, any game | 5–30+ min, per game |
| Dictionary popup placement | On-screen overlay | Separate browser window |
| Real-time games | ✓ Auto OCR | Limited |
| Price | Free | Free |
Decision guide: which should you use?
Can you use both at the same time?
Yes. Some learners run Textractor alongside YomiNinja for VNs that have a compatible hook. Textractor captures the clean text string and sends it to a browser texthooker page for Anki mining — where perfect text accuracy matters for card creation. YomiNinja runs simultaneously for in-game popup lookups.
There's no conflict between them. Use whichever serves each part of your workflow better.
Try YomiNinja
Free download — works on any game
No hook compatibility concerns. No game-specific setup. Works from the first launch.