Jump to content

[Release] Agent - an all-games on any platform text hooker, use this for machine translations!


Recommended Posts

Here's a demo video of a new text hooker/visual novel translator named Agent, developed by [DC] (Otogelib's main programmer and romhacker). With this tool, you can pretty much read every Japanese visual novel/otome game on any platform using machine translation. It works with emulators like PPSSPP/Yuzu and of course normal PC Games etc...

You can code your own script for it to support the game you want.

Tool download: https://github.com/0xDC00/agent

Worked on Cupid Parasite played with Yuzu newest version:

 

Link to post
Share on other sites

If it works on games where the drm is the major obstacle to text-hooking, it might be worth the trouble.  However, at present its methodology is too clunky.

Edit: To be specific, the need to utilize Cheat Engine is annoying to the extreme, if only because I have to fight off my antivirus while it is working.

Edit2: The main reason I was curious was to see if the Steam version of the Silverio series could be hooked using it.  However, I tested it with another game first, and it annoyed the hell out of me as I did.  While all text hookers are somewhat obtrusive, this one requires way too much work to set up, unless you intend to just leave your pc on until you've finished the game, which is impractical sometimes.   In the future, the maker should think about integrating the search function instead of outsourcing it to Cheat Engine and its fellows, which are almost all labeled as malware by standard antivirus programs (thus necessitating even more workarounds and making exceptions).

Edit3: The answer is no, it doesn't work.  Apparently the heavy DRM issue from Steam and DMM is universal for preventing text-hooking.

Link to post
Share on other sites
  • 2 weeks later...
On 7/10/2021 at 2:19 AM, Clephas said:

If it works on games where the drm is the major obstacle to text-hooking, it might be worth the trouble.  However, at present its methodology is too clunky.

Edit: To be specific, the need to utilize Cheat Engine is annoying to the extreme, if only because I have to fight off my antivirus while it is working.

Edit2: The main reason I was curious was to see if the Steam version of the Silverio series could be hooked using it.  However, I tested it with another game first, and it annoyed the hell out of me as I did.  While all text hookers are somewhat obtrusive, this one requires way too much work to set up, unless you intend to just leave your pc on until you've finished the game, which is impractical sometimes.   In the future, the maker should think about integrating the search function instead of outsourcing it to Cheat Engine and its fellows, which are almost all labeled as malware by standard antivirus programs (thus necessitating even more workarounds and making exceptions).

Edit3: The answer is no, it doesn't work.  Apparently the heavy DRM issue from Steam and DMM is universal for prevent

The main feature of the program is using javascript to hook the text of the game you want, the cheat engine method is only for ppl w/ zero programming experience.

For me, I'm grateful for this bc it can hook text from emulators as well.

It does work, idk abt drm games but it works on pretty much all games. Please don't say that it doesn't work.

Link to post
Share on other sites
35 minutes ago, Otogelib said:

The main feature of the program is using javascript to hook the text of the game you want, the cheat engine method is only for ppl w/ zero programming experience.

For me, I'm grateful for this bc it can hook text from emulators as well.

It does work, idk abt drm games but it works on pretty much all games. Please don't say that it doesn't work.

Never said the program doesn't work for other things, but it doesn't work for games protected by drm.  It takes work, but it works fine with other stuff.  

Link to post
Share on other sites
13 minutes ago, Zakamutt said:

what makes this different from Hook Any Text?

Yeah, exactly. I see no advantages at all this Agent would have over Cheat Engine & HAT combo - especially since you still have to fire up Cheat Engine to search for memory address. The only difference is, that it generates hex encoded version of text from OCR.

Edited by adamstan
Link to post
Share on other sites

Hi, Agent author here.

Agent shipped with two scripts: _MemoryWatch.js & _ExecutionWatch.js

_MemoryWatch.js look like HAT?

=> It's look like R-Code too, but I think _MemoryWatch work better (just ~90 line of code).

_ExecutionWatch.js, D-COCE look like H-CODE (textractor, VNR)?

=> _ExecutionWatch support both PC and emulator. (D-CODE wiki).
If you don't like CheatEngine, please try this script.
 

Yeah, the main feature is a text hooker.

The difference:
- Agent is script based, configless.
- Agent have no limitation (for complex game (custom encoding,...DRM?), just write a custom script - developer).

Edited by 0xDC00
typo
Link to post
Share on other sites

Oh, the version I downloaded few days ago, didn't have the ExecutionWatch script, just two versions of Memory Watch - and Memory Watch does essentially the same what Cheat Engine would do. But that ExecutionWatch looks more interesting, and perhaps even promising.

Link to post
Share on other sites

By the way, @0xDC00, would it be possible to use that second script to hook something like PSP version of Princess Evangile? It's engine is a bit weird, and MemoryWatch methods (including Cheat Engine and Textractor) don't work with it, because it doesn't store currently displayed text at fixed memory area. Instead it loads up big chunks of script - or perhaps even whole - and then seems to render directly from that storage area. So whenever you find currently displayed line in the memory - it will be always that line under that address - no change, and each subsequent line is read from different address.

Edited by adamstan
Link to post
Share on other sites

@0xDC00Sadly, I'm still unable to hook PE Portable. The D-code you provided doesn't work for me. I guess it's caused by the fact that this game (as well as many other PSP ones) seem to load into different memory area on each boot. For example, for the first two lines of text, I get following results:

At first run:

132E7F80
132E7F8E

Then, after restarting the emu:

122E7F80
122E7F8E

And in the third run:

12EE7F80
12EE7F8E

So, as you can see, it's at different initial offset each time - three most significant nibbless of the address keep changing at each run.

Also, the guide for finding D-code seems a bit unclear to me, I have trouble following it.

BTW - could I perhaps ask you for the D-Code for PS3 version of  '&' - Sora no Mukou de Sakimasu you ni ? (BLJM61131)

From my experience, contrary to PSP games, PS3 ones seem to mostly use fixed address space.

Edited by adamstan
Link to post
Share on other sites
1 hour ago, 0xDC00 said:

DCODE is designed to solve that problem (fixed aka static or dynamic doesn't matter).
Maybe the JIT'd code on your machine is different from mine.
What your ppsspp version? please try latest version, 1.11.3+: https://buildbot.orphis.net/ppsspp/index.php

I updated the PPSSPP. It still didn't worked, but then I noticed I've been running 32bit version. When trying to use your D-code, it would just repeatedly ask for it again and again. However, when I tried 64bit PPSSPP, the Agent has accepted the code, but it doesn't seem to grab the text. Here's the result:

agent-error.png

Link to post
Share on other sites
10 hours ago, 0xDC00 said:

Tutorial (without DCODE):

Sadly, still no good :(

I found address of the instruction you showed in your tutorial:

agent1.png

But when I press the button to advance to the next line, PPSSPP freezes, and Agent falls into endless loop:

agent2.png

Also, I noticed that addresses I'm getting from CheatEngine have only 9 digits, while yours have 12, but I'm not sure what it means.

Link to post
Share on other sites

The instruction looked like this:

13C53DEBB - 46 0FB7 44 0B 00  - movzx r8d,word ptr [rbx+r9+00] <<

And as for full screenshot from CE window:

address.png

Of course this time addresses are different (apart from two LSB) since this screenshot is from different run.

Link to post
Share on other sites
14 hours ago, 0xDC00 said:

I tried. It still crashed, but this time instead of just "onEnter", it displayed this:

agent-error2.png

And when trying D-code you found first, I get following output:

Pattern: 46??????????45??????F3??????????F3??????????41
[Pattern] no result!

***** UPDATE ****

The crash above happened on 64bit PPSSPP, but tt worked on 32bit PPSSPP! :D

agent-success.png

Edited by adamstan
Link to post
Share on other sites
7 hours ago, 0xDC00 said:

My solution (in video) may not work on other operating systems or processors.

I did some more tests, and it seems, that on my system situation with ExecutionWatch is as follows:

  • On 32bit PPSSPP the address mode works, as demonstrated above, but Pattern/Signature/D-Code doesn't - it always gives back "no result", even though I think I created correct signature.
  • On 64bit applications - PPSSPP and rpc3 (PS3 Emulator) it keeps crashing, with the endless loop of "OnEnter <address>" messages - both in address mode and in pattern mode.

I have i5-4570 CPU, 8GB of RAM, and I'm running Windows 7 Home Premium 64 bit.

 

Edited by adamstan
Link to post
Share on other sites
On 7/24/2021 at 3:23 PM, 0xDC00 said:

I had pretty busy weekend, so I could do just some quick tests - and there is some progress. On "test 2" version address mode worked on PPSSPP 64, but it still crashed in pattern mode. And I still couldn't make it work with rpc3 - it also crashed, both in address and in pattern modes. I'll try it with a different game - maybe the one I'm trying to hook (PS3 version of '&' - Sora no Mukou de Sakimasu you ni -) is extremely tricky?

Edited by adamstan
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...