Jump to content

I made a prototype of text hooker for emulated games


MX-Futhark

Recommended Posts

Hi everyone, I'd like to present an embryo of text hooker I made. Well, at this stage, the actual hooking part is not really there, but bear with me. I already posted this on /r/visualnovels, so this will basically be the exact same post as what is already on reddit.

Without further ado: the little guy's name is "Hook Any Text", HAT for short. HAT is simply a plugin for Cheat Engine and doesn't quite live up to its name yet, but it's usable with games that are not covered by the traditional tools: AGTH, ITH and VNR.

Rather than talking at length about what it does, what it doesn't and how it came to be, here is a presentation of what its use looks like: demo

Lots of stuff that you can skip:

I actually got the idea by trying to get VNR to work with Fate/Extra CCC. Long story short: it didn't. I later stumbled upon this tutorial. The demo above should be very similar to what you can read in this link. After reading this, I got the idea to make a program that would automate the last part, that is, copy-pasting the hexadecimal data and converting it for every new line of dialog. The hooking part is still left to the user. I figured it could serve as a fallback method for when the other major text hookers mentioned above don't work. This is not limited to emulation, contrary to the title of this post. But I needed to lure you in, right?

The great advantage of this method is that it does not depend on an engine or an emulator. The game doesn't have to be a visual novel for its text to be hooked. The problems are however numerous:

  • Some engines do not not store their strings in such an easily accessible way. I failed to make HAT work with Kirikiri and Unity games, for example.
  • The steps required to first find where the text is stored in memory require the user to write Japanese. Not much, and only once, but that is still a bit of a turn-off when you can't decipher moon runes and want to use this kind of tool to feed the text to a machine translation program. There are solutions to this problem, though.
What it does:
  • Detect changes convert the hexadecimal data selected in the memory view of Cheat Engine. It then puts the result of the conversion in the clipboard.
  • Detect the encoding used by the game, provided it is not an exotic one (Pokemon games, for example, won't work with HAT because of their proprietary encoding)
What is does not (yet):
  • Automatically find the textual data
  • Adapt its behaviour based on the engine on the engine of the game
  • Attempt to be user friendly
When you should use it:
  • You tried every other text hooking tools and they didn't work.
  • You want to help the project by reporting the bugs you can find and help me keep track of the games it works with.
I successfully use HAT to play Fate/Extra CCC and 11eyes Crossover on PPSSPP and JPCSP, Sora no Otoshimono Forte - Dreamy Season on DeSmuME, or Monster Girl Quest, among others.

Some more stuff that you should not skip:

If you want to hook the text of a game on emulator, try HAT. It may work and it may not, but it's worth trying. Follow these steps:

More information in the other pages of the wiki.

To developers out there: here is the GitHub page.

Thanks for reading. I'd be very grateful to have some feedback on it. Remember that the project is still VERY young, but feel free to speak your mind. General questions, features you would like to see, bugs you detected, games it worked/didn't work with, bad grammar in the wiki... anything constructive would help me.

 

----------

PS: Sorry if this is not the right place, I couldn't find a fitting section for this kind of post. I count on the mods to move it where it belongs if necessary.

Link to comment
Share on other sites

Excellent man! Just what I was thinking of! I've recently been trying a lot of things with the hex method, even tried and successfully hooked a PSX visual novel lol (fyi, it was the psx port of ONE: To the Radiant Season and the emulator PSXfin; ah, also tried Sister Princess, though with a lesser degree of success, not all the lines of the game can be hooked, though I should run some more tests) and was thinking that it would be nice if the method was a bit more automatized, it'll be a great help if at least it copies to the clipboard the changing hex data.

 

At this stage, I think at least it's a handy help for people with a significant knowledge of Japanese, like for people who wouldn't have too much trouble reading large quantities of kanji, and can easily recognize the grammar present in kana and simpler words/kanji, the point of it all being the possibility of reading unknown kanji via a simple copy and paste. I myself was hoping I could use this method to improve my reading practice habits, I mean, trying to read without text hookers and only using it as a handy tool for reading unknown kanji with a simple copy and paste (instead looking them up 'manually', which usually takes me some time and hinders my reading pace).

 

Good luck!

 

Well, my results: 

 

With the PSX port for ONE the pretty much all the text is hooked directly to TA (although with a bit of 'garbage'), which comes in really handy, since without HAT I'd have to look up for up to 5 hex directions! since it seems each line of text on the screen is stored in a different hex direction, but HAT luckily recognized all those directions.

 

http://imgur.com/DwPqsLr

 

With Sister Princess, it seems only one line of text is available on ram, so only one can be hooked.

 

http://imgur.com/44pegzZ,MfyRAiD

 

Well, these results and its specifics probably have more to do with the games themselves than with what HAT

can do, but maybe this feedback would be useful for considering what games can be hooked easier than others. 

Anyway, pretty happy you made this. Thanks again. 

Wouldn't be nice if you could keep a record of what games work with this method? People could contribute too of course.

Edited by dullian
Link to comment
Share on other sites

After I found this post I thought, ok, finally I will make a fuwanovel account and reply to you. :3

This is really awsome that you made this tool, it does save a large amount of time if you try to hook text with Cheat Engine. Finally. I did a workaround with "Mouse and Keyboard Recorder by RobotSoft" earlier but this is much better.

 

You said that you can hook several emulators? Well, it´s not really new to do it with Cheat Engine. it was even on fuwanovel in some sort:

http://forums.fuwanovel.net/topic/5522-emulated-psp-game-text-hooker/

And to do a better overview, I created a thread and added your tool there instead. Because HAT is only an additional tool, not a method to hook text (At least in this status of this project). You should know, that there are multiple methods to hook text from emulators and programms, and the success / the workload is different. I think you aren´t informed that good enough. You shouldn´t ignore them.

http://forums.fuwanovel.net/topic/11329-how-to-translate-and-play-untranslated-visual-novel-on-emulators-psppsxps2dsgamecubewii/

 

Yes, I found the same link like you did too (Translating Daiya no Kuni no Alice on PC), and I made a video on Youtube about hooking text with Cheat Engine nearly 3 months ago. I even did a list with several platforms, tested games and finally added all my results in Google Docs. Started with the list maybe 2 months ago? You can find all my videos on Youtube, but I won´t post a link here, you will find them in the thread or the Google Docs list. After a large amount of testing over months I can say, this method still do have some limitations and does not work every time, but it works more often then VNR/ITHVNR with Emulators. And it funny to say that this is really the only alternative for some PC Games. For example, you can´t hook HapyMaher with any tools out there like VNR/ITH/etc because it don´t create a process of the window and you can´t see it in taskmaneger. For myself this topic is still under development, but if you are interested, here is the biggest list about hooking text from emulators you can probably find in the web:

https://docs.google.com/spreadsheets/d/17oyxmyedaMGc7c2_-48XXdsJCR7FjftakH3MIysMILk/edit?pli=1#gid=0

 

I really would be happy if someone could combine this with VNR. It would be awsome if somebody could tell me how to add this text in VNR. I really like that interface and would prefer to play in fullscreen with floating text.

 

I tested your tool the last hours, and here are my results (Note that I did this testing as fast as possible to give you feedback):

- I am proud, you did UTF-8 support. I thought at the beginning you only did UTF-16 and SJIS because only these can TA handle. But you should know there are several games based on UTF-8 coding.

- I can´t find sometimes the text? Strange but sometimes it is like he don´t want to find it. After I added your tool, I am forced to go to the ingame text in the emulator and then start Cheat Engine. If I do it randomly, it will result in "??" everywhere.

- But this does load sometimes so long? I have loading times up to 13 seconds. Every time I switch the text I need to wait so long, I think there is improvement.

- Finally, one Question, why cmd.exe opens with Cheat Engine? Is there a way to make it invisible?

 

If you have questions, I searched information about that like 5 months, but I think you got the most information out yourself. If anybody is interested in helping to make this list grow, write me, any help is appreciated.

Link to comment
Share on other sites

Thanks!

 

At this stage, I think at least it's a handy help for people with a significant knowledge of Japanese, like for people who wouldn't have too much trouble reading large quantities of kanji, and can easily recognize the grammar present in kana and simpler words/kanji, the point of it all being the possibility of reading unknown kanji via a simple copy and paste. I myself was hoping I could use this method to improve my reading practice habits, I mean, trying to read without text hookers and only using it as a handy tool for reading unknown kanji with a simple copy and paste (instead looking them up 'manually', which usually takes me some time and hinders my reading pace).

I originally created HAT for myself, for this exact purpose. Glad to know you found it useful =)

 

You said that you can hook several emulators? Well, it´s not really new to do it with Cheat Engine. it was even on fuwanovel in some sort:

http://forums.fuwanovel.net/topic/5522-emulated-psp-game-text-hooker/

And to do a better overview, I created a thread and added your tool there instead. Because HAT is only an additional tool, not a method to hook text (At least in this status of this project). You should know, that there are multiple methods to hook text from emulators and programms, and the success / the workload is different. I think you aren´t informed that good enough. You shouldn´t ignore them.

http://forums.fuwanovel.net/topic/11329-how-to-translate-and-play-untranslated-visual-novel-on-emulators-psppsxps2dsgamecubewii/

You're absolutely right: I didn't really create anything, and I don't claim so. At this point, HAT is just a convenient tool to automatically convert changing hexadecimal text.

By the way, I saw the fuwanovel post and the googledoc you linked to a while ago, but I will definitely check out your guide in more depth. Thanks for mentioning HAT there.

I'm still pretty much a newbie when it comes to text hooking. If anyone has resources on the subject, I would be interested in reading them!

- I am proud, you did UTF-8 support. I thought at the beginning you only did UTF-16 and SJIS because only these can TA handle. But you should know there are several games based on UTF-8 coding.

- I can´t find sometimes the text? Strange but sometimes it is like he don´t want to find it. After I added your tool, I am forced to go to the ingame text in the emulator and then start Cheat Engine. If I do it randomly, it will result in "??" everywhere.

- But this does load sometimes so long? I have loading times up to 13 seconds. Every time I switch the text I need to wait so long, I think there is improvement.

- Finally, one Question, why cmd.exe opens with Cheat Engine? Is there a way to make it invisible?

I'm going to answer this item by item:

- Yeah, i've heard that sakurasou on psp uses utf8, so I figured it would be useful.

- If I understood what you said correctly, then this is weird. As soon as dialog is displayed in the game, the text should be somewhere in the memory, no matter the order in which you completed the steps to find the text. Can you give a precise description of a case in which you encounter this problem?

- Does the problem arise without HAT installed too? As far as I know, HAT shouldn't cause so much delay.

- There is no way for you to make it invisible at the moment. It's pretty complicated to fix this problem on my end, and in the extent that it does not prevents the tool from working, changing this behaviour is not a priority. I know this is inconvenient but please bear with it for now =/

Link to comment
Share on other sites

If you are intersted to find out more about this topic, many links are in the provided Google Docs list or in the video descriptions of the videos (In case you haven´t noticed). And if you do have futher interest, I can help. I did so much research, now I know 6 different ways to hook text from PC VN´s. (But because you got that far, I think you should know nearly all of them.) May there is interest too.

 

To answer your questions:

- Solution to the problem: Your programm is runninng a second "java.exe" thread. I hooked that instead the emulator JPCSP.

- I can´t really say... Because the text in Cheat Engine is changed in milliseconds. I can´t paste the text that fast to give you a comparision. But I don´t think TA loads that long. I will test the TA reaction time and give a report.

EDIT: After some testing, here the results of 5 mins gameplay: SJIS speed: 2 seconds. UTF-8 speed: 2-7 seconds. Well it seems that this is pretty random factor.

Another note, if you are too fast (I don´t mean really fast, like an interval of secs) your tool sometimes don´t copy the text to the clipboard.

- No problem, I don´t coded it, I only ask.

 

And if possible, I want to suggest something. Seems like you have some programming skills, and I like the VNR interface really much. In that way it is possible to play in fullscreen. But at the moment the only way I know is to use Translation Aggretator or online translators with the Hex method. I have 2 ideas:

- A tool that creates a process, VNR will hook the text from there. And then place the window in for forground somehow? (I tried a workaround and used VNR to hook TA. Result: Can´t find process in the list.)

- Create a new tool, that will display the text from the copyboard in the style that VNR does. (romanji, original text, translation, etc...)

- Some edits to VNR itself.

You should see this as an idea for people not only for emulated games, if that is possible you can hook text with ITH and then use fullscreen for example. But now VNR is the only option if you want to do it like that. And the Hex method at the moment not playable on fullscreen. But I think improving the Hex method does have a bigger priority now.

Link to comment
Share on other sites

I don't know if this is relevant, but I'd like to add something. Is about finding the text.

 

Let's see, the current dialogue of a game displayed on the screen should be visible in ram, but from what I've seen that text is also stored in another specific address, most probably where the whole script is located, in other words each piece of dialogue should be there ordered by the sequence it'll be displayed. 

 

Check this, for example:

 

http://imgur.com/PvIIbQ9

those 'f...' you see in the right column of the picture are dialogue breaks/ separators, what's in between them is dialogue, and it's stored in the order it's displayed in the game, I verified this. 

 

 

So, why am I bringing this up? Well, because with some games I've been only able to find the text stored in what I call the 'script addresses'.

 

This game Criminal Girls. for example

 

http://imgur.com/bW1pkyG

 

 

As you can see, Cheat Engine only found two addresses for the text I looked up for, none of them are what I call 'active addresses' (you know,the ones that change as the new text appear on screen).

 

So, since Cheat Engine won't find those 'active' text addresses, you'd be pretty much be forced to copy and paste manually the whole script from the 'script addresses' lol. Well, I guess there methods for dumping the script (and it'd be nicer if you can convert the whole thing from hex to text).

 

Well, from what I've been told , this game's text uses special compression, so I might infer that's one reason why 'active text' won't show in ram. So, no way of actively hooking it. 

 

I've ran into another case like this, it also was another RPG, one for PSX, The Vision of Escaflowne. Maybe it's an RPGs' thing lol? Well, I think this could be the case for any game where you can't find addresses with active text.

 

Another crazy assumption I could make out of innocent reasoning (since I have no knowledge in programming and next to nothing on rom hacking) is that cases like this the current game's text is in ram, but in another format and only being able to be shown visually on the game's screen, maybe an instruction picking up the game's text and directly transmitting it visually to the dialogue box, never having hex format. 

 

One workaround I could think of is maybe using Cheat Engine to check what addresses are active and changing so you could check their hex values to see if they prove to be the game's active text in some other format, though I have no idea how to look up for active addresses in Cheat Engine, the memory viewer is too damn large for doing it manually/visually.

 

Also, I had mostly given up on finding Criminal Girls' script with hex since I could only look up text with Translation Aggregator and its UTF-16 and SJIS to hex converter, but it turned out this game's text is in UTF-8 (at least the one in the 'script addresses'). So, is there an offline UTF-8 to hex converter? I really need it to be offline.

 

Edit:

 

Well, it seems this saved page works as an offline converter lol http://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output

 

 

 

Link to comment
Share on other sites

That is really useful information! I really never thought about it that that what looked like garbage actually is the script in the ram. (Why, it was so obviously if the text doesn´t change, then it should be the script...) That explains the multiple results that aren´t changing at all, you can find in Cheat Engine if you search after that string. And I can verify that this happens in some other PSP games too.

 

A good example is Boku wa Tomodachi ga Sukunai PSP. If you try to find the text, it will be like you display in the screenshot. There isn´t changing anything and a bunch of stuff with the actual dialog. (But the only thing I thought before after testing it the first time, ok there is the text, it isn´t changing, what should I do now? And searched every time the next text from scratch.) But if that is true, this could be another method to dump scripts. I need to test it. I hope that is what I believe it is...

 

And if I got it right, you basically say that it is in another format, aside from SJIS/UTF. Well, I found a video about it some time ago.

You can see, like I pointed out in the comments, "つ" was in the hexeditor "0F". It seems like a special character does have a special code. Through it wasn´t any format I know. The only way to guess the right text was to create a table of the characters. I don´t know how large you can expand this topic, but I would assume that PSP Games which aren´t working with Hex are using such things.

Link to comment
Share on other sites

Now that you mention it, if the active text in ram is using an unique coding, making a table file might help. However, I'm not quite sure that's the case, because as I said the script text in the fixed addresses is there, so using another encoding only for displaying text in-game seems a bit redundant to me so I don't have much hope about it. BUT then again, I don't know about programming and barely about rom hacking,so I might be wrong.

 

Maybe doing a relative search might help to see if the active text in ram is using a specif encoding, but I still haven't learned how to do that.

Link to comment
Share on other sites

Another note, if you are too fast (I don´t mean really fast, like an interval of secs) your tool sometimes don´t copy the text to the clipboard.

That's right, in order to avoid reconverting the hex data too frequently, the convertion part of the process is only executed once every 300ms. This was a temporary behaviour and sort of just let it be. I'll make sure to find a better solution.

 

 

This game Criminal Girls. for example

 

http://imgur.com/bW1pkyG

 

 

As you can see, Cheat Engine only found two addresses for the text I looked up for, none of them are what I call 'active addresses' (you know,the ones that change as the new text appear on screen).

Well, it seems this saved page works as an offline converter lol http://www.mobilefish.com/services/latin_utf_base64_to_hex/latin_utf_base64_to_hex.php#text_hex_output

You basically answer your own question here:

 

Another crazy assumption I could make out of innocent reasoning (since I have no knowledge in programming and next to nothing on rom hacking) is that cases like this the current game's text is in ram, but in another format and only being able to be shown visually on the game's screen, maybe an instruction picking up the game's text and directly transmitting it visually to the dialogue box, never having hex format.

This is not a crazy assumption. Actually, this is the very reason why AGTH sometimes need Hook codes.

Sometimes, text is displayed character-by-character and you need to find where every character transits in order to reconstruct every line as they are displayed.

Also, just as you mentionned, old games in general (SNES, PS, Game Boy/color/advance...) tend to use custom encodings in order to save as much memory as possible. Those are not hookable with HAT so far (and will probably not be anytime soon, I don't plan on going over every possible encoding ever made...)

Link to comment
Share on other sites

This is not a crazy assumption. Actually, this is the very reason why AGTH sometimes need Hook codes.

Sometimes, text is displayed character-by-character and you need to find where every character transits in order to reconstruct every line as they are displayed.

Also, just as you mentionned, old games in general (SNES, PS, Game Boy/color/advance...) tend to use custom encoding in order to save as much memory as possible. Those are not hookable with HAT so far (and will probably not be anytime soon, I don't plan on going over every possible encoding ever made...)

 

So we can assume that the text currently displayed on the screen is in ram but using a custom encoding? For those games where no active text can be found, I mean.

Link to comment
Share on other sites

So we can assume that the text currently displayed on the screen is in ram but using a custom encoding? For those games where no active text can be found, I mean.

This is the most likely explanation for pre-2005 console games (handheld or not). There might be other causes that I'm not aware of, though.

Link to comment
Share on other sites

I found something that you could improve. I noticed that the dialog in some games stopps after a "00", but directly after them there is garbage. (Current games I know about this specific thing: Ao no Exorcist Genkoku no Labyrinth and Sword Art Online: Infinity Moment)

 

What I have from your tool:

"まずは、燐の視点で物語をはじめましょう。▼
----------
イムチャート』で行います。▼
----------
ス》』は、
奥村燐と奥村雪男の二つの視点から、
物語を並行して読み進めていくゲームです。▼
----------
解除、医療を司る『¶医工騎士《ドクター》』。▼"
 
What actually was:
"まずは、燐の視点で物語をはじめましょう。▼"
 
Original (around it was only a bunch of "00"):
"82 DC 82 B8 82 CD 81 41 97 D3 82 CC 8E 8B 93 5F 82 C5 95 A8 8C EA 82 F0 82 CD 82 B6 82 DF 82 DC 82 B5 82 E5 82 A4 81 42 81 A5 00 83 43 83 80 83 60 83 83 81 5B 83 67 81 78 82 C5 8D 73 82 A2 82 DC 82 B7 81 42 81 A5 00 A2 81 42 81 A5 00 83 58 81 74 81 78 82 CD 81 41 0A 89 9C 91 BA 97 D3 82 C6 89 9C 91 BA 90 E1 92 6A 82 CC 93 F1 82 C2 82 CC 8E 8B 93 5F 82 A9 82 E7 81 41 0A 95 A8 8C EA 82 F0 95 C0 8D 73 82 B5 82 C4 93 C7 82 DD 90 69 82 DF 82 C4 82 A2 82 AD 83 51 81 5B 83 80 82 C5 82 B7 81 42 81 A5 00 CC 89 F0 8F 9C 81 41 88 E3 97 C3 82 F0 8E 69 82 E9 81 77 81 F7 88 E3 8D 48 8B 52 8E 6D 81 73 83 68 83 4E 83 5E 81 5B 81 74 81 78 81 42 81 A5"
 
And I know that not all games are like that and use "00" as enter. I think the best thing would be a feature for advanced users to configure after what amount of "00" the text should be cut to avoid garbage like that. But currently I don´t tested enough games to tell you how many would profit from that. (I thought it was worth telling you that something like that exists.)
 
You should know that the text thread in PPSSPP is unstable, it changes the place where the text is every time you restart the emulator. I guess that would destroy my idea for PPSSPP H-Codes. But JPCSP is stable. (After testing myself around 11 games a couple hours ago, correct me if you got other results.)
Link to comment
Share on other sites

What I have from your tool:

"まずは、燐の視点で物語をはじめましょう。▼

----------

イムチャート』で行います。▼

----------

ス》』は、

奥村燐と奥村雪男の二つの視点から、

物語を並行して読み進めていくゲームです。▼

----------

解除、医療を司る『¶医工騎士《ドクター》』。▼"

 

What actually was:

"まずは、燐の視点で物語をはじめましょう。▼"

HAT converts whatever string it can interpret as Japanese. There is currently no option to override this behaviour.

And I know that not all games are like that and use "00" as enter. I think the best thing would be a feature for advanced users to configure after what amount of "00" the text should be cut to avoid garbage like that. But currently I don´t tested enough games to tell you how many would profit from that. (I thought it was worth telling you that something like that exists.)

Thanks, this is noted. I'll make sure to program this feature when the time comes.

You should know that the text thread in PPSSPP is unstable, it changes the place where the text is every time you restart the emulator. I guess that would destroy my idea for PPSSPP H-Codes. But JPCSP is stable. (After testing myself around 11 games a couple hours ago, correct me if you got other results.)

I didn't encounter this problem with Fate/Extra CCC on Win7, for example, but I need to do more tests.

Thanks for reporting these problems!

Link to comment
Share on other sites

@MX-Futhark, some other things I noticed while testing:

 

Quote by CryingWestern (Fuwanovel Data extraction thread): "%N" will pop up in the scripts. The "%N" is a breakline(or Next-line) code."
Well, I noticed it for myself such things some time again for myself (e.g. "%N" in Ore no Imouto Maker EX: Imouto to Koi shiyo! Portable or "#n" Toaru Kagaku no Railgun), maybe a replacement script would be nice to avoid addiditional garbage like that?
 
Garbage at the end like a "/K" in the end can happen too. (e.g. in Sora no Otoshimono: DokiDoki Summer Vacation or another example in Steins;Gate Hiyoku Renri no Darling it was "%K%P") And that isn´t only for PSP Games, for PS2 Games like Fate Stay Night - Realta Nua PS2 – had the same problems. Additional unnecessary garbage.
 
Well, I am still testing, but thats currently it with my results of irregular things...
 
And one thing, you don´t need "MEM_MAPPED" in JPCSP and PCSX, only in PPSSPP (Currently I only tesetd them). Seems that it depends on the emulator.
 

So, since Cheat Engine won't find those 'active' text addresses, you'd be pretty much be forced to copy and paste manually the whole script from the 'script addresses' lol. Well, I guess there methods for dumping the script (and it'd be nicer if you can convert the whole thing from hex to text).

 
@dullian, just got something mindblown, your idea worked. Ok, I still failed at a game that failed at hooking completely to get some kind of text, but I got some luck after all. With the idea you gave me, I was able to get scripts from PSP Games! Currently only tested with Sora no Otoshimono: DokiDoki Summer Vacation. Got so excited, I wanted to share it as fast as possible. After some attempts in JPCSP I did the stuff I said and converted the garbage that doesn´t change. After some attempts the result was a clean script, without garbage with the help of HAT, that was really nice.. Currently I only wanted to say that this idea works, but I don´t tried it much out since I just discovered it. If there will be more, I write again.
 
Why it is success? Because not only that you can dump the text like that, but you could profit in several ways. Currently there are games with script in the ram, and no active thead at all. With that way you could get the text anyway without hacking the ingame files. (e.g. for a game like Boku wa Tomodachi ga Sukunai Portable.) Currently only tesetd JPCSP.
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

For those still interested, it's now possible to replace and remove characters that you don't want to see in result:

The new version can be downloaded here and the manual for character substitutions is here.

 

As said above, the next step will consist in integrating an OCR for games that do not support the current hooking method. It's probably going to take some time.

Link to comment
Share on other sites

  • 2 weeks later...

After my testing, I will write my results to the current build.

Edit: You improved it really since the last version I tested, I had v.0.4 after all for that time.

Random suggestions, thoughts, and other stuff:

- First thing I noticed for a while now, is it possible to made a new .exe thread that isn´t named java.exe? I don´t know if it is possible, but after starting JPCSP there are 2 threads, one of them is HAT, it confuses. I know, that it will be highly impossible to change java.exe, I mean that code, that is nearby, you could display it in the main HAT windows, so I don´t need to redo my working twice to go sure, that I don´t hooked HAT.

http://imgur.com/N6iCcge

- I found out that some games text is stored like this ingame, and isn´t just one game here, that are several games that work like this. May not exacly the same, but I mean that there is a script in the ram after all. I would begging of one feature to use this ingame scripts somehow so HAT can make these games compatible, but even if the isn´t a changing thread I meanI know, there is sometimes garbage in these ripped scripts, and I don´t tested it much, but it seems after all it´s really a clear script you can get from the ram. (not sure if it will change after a while, but it shouldn´t be a problem to hook it again.) You could increase the list of hookable games much more after that, and it would be correct, instead of the OCR. I think you should work on OCR if you don´t have stuff to do anymore, I assume it can be really hard and demands much time to make it good, because it can vary very much on the final results. I can´t imagine that it will work flawlessly and should be used if there isn´t any single method able to do it correctly, or just for the first steps.

http://imgur.com/yKgSrmX (This is AnoHana PSP for example, no changing threads can be found, there are more games like that, Boku wa Tomodachi ga Sukunai or some other games, I think if you want I can screen some other scripts, so you can look on them, how they will look like. Don´t know if they vary much, but they shouldn´t, but can´t remember that good. Maybe I should check how accurate this dumps actually are so I can help you with this, because it can happen that some games have small erorrs in the dumped text from the ram.)

Other things are really well made. you even fixed Oreimo PSP completely for example (don´t know if you did it on purpose), but congrats. I really appreciate it. But wasn´t able to test much. May will tell you some things later, or simply update this post. And could you notify about your stuff/revisions in here too (the main post)? I mean, write the newest build ver. there too, I can´t really check stuff everywhere, so I will miss it sometimes. It took some time until I found out there are several new versions on your page.

After all, big thanks for everything.

 

And one last thing, I don´t know if you noted it, but the developing of some new emulators are really nice. Currently everything is in a really developing state, but there are some working videos on Youtube. I hope I can make this compatible with them.

Soon or later there will be a WIIU (Cemu), XBOX (Xenia/XQEMU), 3DS (Cirtra) and PS3 (RPCS3) emulator. A bright future for untranslated games might come.

(I mean legit, not fake. So that someone won´t say, you wan´t just to spam fake stuff, here, some proof:)

RPCS3 was even able to emulate some PS3 exclusive Visual Novel.

https://github.com/Bigpet/rpcs3

Don´t found Visual Novel related stuff with the other emulators till now.

Edit: I hope to get a reply soon, I waited so long now... :3

Edit 2: I just added in my original Text hooking post, the text extracting in RPCS3 is working, but haven´t tested it much. So that idea of hooking current gen games is actually possible.

Edit 3: I think there are problems with HAT and my Windows 10.. Windows 8.1 worked smooth, but Windows 10 gives me this:

"Error in native thread called Unnamed::...es (x86)\Cheat Engine 6.5\autorun\selectionConverter.lua:205: attempt to call a nil value (field 'gfind')"

And I think HAT need another feature too, some games have lines in different places in the ram. So one is in one place and the second line in another. To get the full text you would need both. So a feature to get both hex sources would be nice, so you could translate them properly. http://imgur.com/VkKKRAC

Edit 4: Citra hooked. http://imgur.com/NNwQmkL

Edit 5: Tested HAT v.0.7/0.6/0.4, everytime that strange error that I named above. I just tested with jre-8u72-windows-x64, not sure why this still isn´t working anymore for myself.

Edit 6: Well, you should add that HAT won´t work with 6.5 and 6.4 is recommended. Still waiting for a reply.

Edit 7: Now a half year passed, it´s like this project is dead here.

Link to comment
Share on other sites

  • 1 year later...

So ı have a question. This works like a magic but ı have a problem on a game called  Meitantei Conan - Marionette Symphony. It is a 3ds game and ı play it on a citra. When ı try to hook ı can hook the text but the problem is it only hooks 1 line. Let's say it has 3 lines like

I am going to go school tommarow.

I am excited. 

It only hooks  I am going to go school tommarow and does not hook second line of course ı can hook the second line seperatly but  ı do not know how to merge 2 seperate lines into 1 single line.

Link to comment
Share on other sites

This was already suggested by dulliian, but I think HAT is dead at this point since he didn´t update this page for quite a while now. He planned to implement OCR, and some other features if I remember correctly. At least some of the features like wrong character replacement are there. Last build is from 2015-08-15, nearly a year ago, but I really hope that this project will be updated in the future. Seems like he isn´t active in this forum since November 1, 2015.

Edited by Styler00Dollar
Link to comment
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...