Jump to content
Sign in to follow this  
Aeana

A thread for my tinkering with DQ10

Recommended Posts

Since my chat monitor program has been released, I thought I'd repurpose this thread to be about my general tinkering with the game, which seems to be a sickness because I spend more time doing that than actually playing, lately.

 

 

 

 

 

---------------------------------------------------------------------------------

 

This is inspired by a conversation in team chat last week some time when I was trying to help a team member with a quest but he wanted to Google the place name and couldn't type it. Continually impressed that people are managing to play this game without being able to read Japanese, I realized that I might be able to make it just a little bit easier for them. I thought it might be helpful if there were a way to get the game's chat out of the game for some people, particularly for copy/pasting Japanese text that they don't know how to type from the game into Google, either for searching walkthrough sites or for putting into Google translate or whatever they need it for.

 

What this does is read the game memory to extract the chat log. It's still a bit early, so I'm not releasing it yet. I just wanted to gauge interest since my free time suddenly plummeted. If people are interested, I'll try to finish it up ASAP, otherwise I might just let it simmer for a while. Naturally, this is only for the PC version of the game. Sadly, there's no way to make it work with the other versions.

 

Here's how it looks now. The formatting is in flux. At the moment, I'm just kinda emulating the style on the chat tab in-game, but I can easily change it to anything else if anybody has any suggestions.

 

dqxcm.png

Edited by Aeana
  • Upvote 1

Share this post


Link to post
Share on other sites

That is awesome! Should be a great help to regular players and people writing English guides 'n such. Will it be a separate program to run or a patch?

Share this post


Link to post
Share on other sites

Certainly sounds neat! This might be asking too much, but is it also capable of translating English text into Japanese for chat with Japanese speakers?

Share this post


Link to post
Share on other sites

That is pretty sweet, good work

Share this post


Link to post
Share on other sites

This is pretty awesome. I think this is a great idea, and I really appreciate the work you've put into it.

 

Do you mind releasing the source when it's finished? I'm curious .-.

Share this post


Link to post
Share on other sites

Hell yeah! Sort of a legally dubious fan translation, as opposed to an outright illegal one. LOL

 

Excellent work!

Share this post


Link to post
Share on other sites

Certainly sounds neat! This might be asking too much, but is it also capable of translating English text into Japanese for chat with Japanese speakers?

I was going to say that this is unlikely, but a friend of mine pointed me to something called Atlas that's used for a lot of machine translating for visual novels and stuff, and it seems like something that should not be too difficult to hook and make use of. But using something like Google Translate is unlikely because they have a quota on the number of requests you can make. I would like to note, though, that a lot of Japanese players use shorthand that machine translators don't fully understand, so you very well might get some gibberish now and then.

 

This is pretty awesome. I think this is a great idea, and I really appreciate the work you've put into it.

 

Do you mind releasing the source when it's finished? I'm curious .-.

I don't see any reason not to release the source. It's not a particularly complex program, either.

Share this post


Link to post
Share on other sites

I wouldn't be surprised if you can't hear my "thank you" over the sound of how awesome you are.

Share this post


Link to post
Share on other sites

The dream of copy&patse for game chat will finally come true!! Definately love your hard work!! :)

Share this post


Link to post
Share on other sites

This, coupled with Faolan's game script program/project, will make the game completely playable to non-Japanese players!

Share this post


Link to post
Share on other sites

If you could add a save feature that would be really nice for keeping logs.

 

As far as people talking about cutting and pasting, I would assume that this program only reads from memory so while people can cut and paste from chat, they still can't paste into chat.

 

I looked into Atlas and it seems it costs around $80 so I don't think many people would be in a rush to use it. I was thinking something using EDICT would be good if it existed, but that won't attempt to parse sentences into English. But while looking into that I came accross a piece of software that claims to be able to use Atlas or Google Translate to translate games. I don't know if it would work for DQX as it intercepts the System calls to display grab the text to be translated. It also can read from a specified point in memory. The software was called ChiiTrans. As you can see from the sample translations though you wil notice that the quality of even the translations from Atlas are quite bad. For the chat program (or if you also know the memory location of normal text that as well) I think that feeding the text into the program JGloss might be the better alternative. While it just provides dicionary lookup for the words and little gramatical help, I think it will still make more sense then the automatic translations while also showing the Japanese with glossing so that people can learn words to commuincate with Japanese players.

Share this post


Link to post
Share on other sites

I actually intended to eventually add support for something along the lines of JGloss (well, my idea was more like Rikai), because I personally believe that is the best way for people to become informed as they go. It just mostly comes down to finding the right tools with which to do it. Being able to mouse over words and get definitions and conjugation information for verbs should be very useful for anyone who's looking to actually learn about the language. That said, it's a big job and at this point I don't expect to have time to tackle something like that for a while yet. The first release will simply deliver the text, and it will be copyable. From there, people are free to paste it into something like JGloss for more information if they like, or into Google Translate if they must.

Share this post


Link to post
Share on other sites

 or into Google Translate if they must.

But thou must!

Share this post


Link to post
Share on other sites

Actually, if her program can read directly from the memory, then there's no need for mine. :P Her program will have a 100% chance of getting the text right, whereas mine depends heavily on OCR.

 

There's benefits and drawbacks to both methods. One benefit of doing it my way is that I don't have to worry about the memory addresses being changed, or the values being obscured. I would have to worry about a change in font though. For each new font, the OCR would have to be trained to recognize the font.

 

As long as SE doesn't catch on, Aeana's method is better than mine. :) I do like the idea of combining these programs with dictionaries so that people have the ability to learn.

 

Aeana, adding Google translate should be a trivial thing. I did my script in C#. If you're using C# and want to add a quick button for the user's convience you can copy that portion(or any portion for that matter) of the code.

Share this post


Link to post
Share on other sites

Well so far, this is just for reading chat messages, rather than actual dialog. Although I'm sure it's plenty possible to read the dialog as well, perhaps I will look into that for a subsequent project.

Share this post


Link to post
Share on other sites

I don't remember if DQX had an anti cheat engine but watch out for that, maybe this could trigger it. If it does have an anti cheat thing maybe test it on free accounts or something until it's safe to use

Edited by wiregu

Share this post


Link to post
Share on other sites

I don't remember if DQX had an anti cheat engine but watch out for that, maybe this could trigger it. If it does have an anti cheat thing maybe test it on free accounts or something until it's safe to use

This is a good point. A lot of anti-cheat applications determine memory reading as cheating, even if no addresses are edited.

Share this post


Link to post
Share on other sites

I've used a few text hooking programs before for older games that were untranslated and I gotta say your version looks much nicer to the eyes than them.

 

I think I used devhook and atlas for playing LoH: sora no kiseki a good 6 years ago. If atlas hasn't gotten much better since then it's definitely not worth paying for. I don't remember if it was a beta thing or if I pirated back then  honestly but it was super bad, a step below google back then. Only mildly useful for getting important names out of it when it felt like giving me them

Share this post


Link to post
Share on other sites

I apologize for the delay. As I mentioned in the first post, my free time has evaporated, and when I logged in on Thursday, I noticed that my method for locating the chat text in memory was flawed. Since the code up to that point was really sloppy and not easily distributable, I decided to rewrite the whole thing from the ground up. That part is mostly done, but unfortunately in the current form, it's only reliable for the first time you log into a character after starting the game. If you log out and go to the main menu and then log in again, the game moves stuff around and I haven't come up with a reliable way of tracking it down just yet, although I do have a couple of things I'd like to try. Since I know people are waiting for this, I'll be releasing it in the current state soon and work on coming up with something more bulletproof afterward. For now, it just means if you want to change characters and use my program, you would have to exit all the way out to the launcher first. It's a big inconvenience for those who have alt characters, so I'll be trying to get that done ASAP.

 

I've never done anything quite like this before, so it's been a learning experience, to be sure.

Share this post


Link to post
Share on other sites

I apologize for the delay. As I mentioned in the first post, my free time has evaporated, and when I logged in on Thursday, I noticed that my method for locating the chat text in memory was flawed. Since the code up to that point was really sloppy and not easily distributable, I decided to rewrite the whole thing from the ground up. That part is mostly done, but unfortunately in the current form, it's only reliable for the first time you log into a character after starting the game. If you log out and go to the main menu and then log in again, the game moves stuff around and I haven't come up with a reliable way of tracking it down just yet, although I do have a couple of things I'd like to try. Since I know people are waiting for this, I'll be releasing it in the current state soon and work on coming up with something more bulletproof afterward. For now, it just means if you want to change characters and use my program, you would have to exit all the way out to the launcher first. It's a big inconvenience for those who have alt characters, so I'll be trying to get that done ASAP.

 

I've never done anything quite like this before, so it's been a learning experience, to be sure.

 

I've never really worked with memory addresses or anything like that myself, so unfortunately I don't really have any definite ideas to offer.

 

Perhaps there's a memory location prior to where the chat log starts that may be used to determine that it's starting? Like an identification header or something like that.

 

I probably have no idea what I'm talking about. I'm a programmer, but I've never dipped into addresses like this before so I'm pretty clueless on how to determine what you're looking for.

Share this post


Link to post
Share on other sites

Okay, this isn't quite a release because I'm still working on more accurately grabbing the text before I polish everything else up. I got memory dumps from a couple of other players last night and discovered that some stuff that I took for granted is actually different per-player. I've come up with a solution that I think should work for most, but I would like to have people try it and let me know.

 

<link removed>

 

I'd like people to try it in a variety of situations. Try starting it before logging in, try starting it at the main menu before you choose your character, try starting it once you're already logged in. In theory, it should work in all of these situations but I can't say for sure it does for anybody except me right now. Starting it once you're already in-game on your character is probably the most solid case though, I hope. If, once you're logged in and you'e got text showing up in your chat log and it doesn't show up in the program, then that's evidence enough that it isn't working.

 

If you're not comfortable with alpha-level software, then that's okay, I'll have a more polished release out as soon as I can. I'm just hoping to get feedback from at least one or two people. Thanks~

 

EDIT I found a bug with the first login not attaching on the main menu, so with this version just stick to starting it up once you're in-game on your character and let me know how that goes.

Edited by Aeana
  • Upvote 1

Share this post


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.

Sign in to follow this  

×
×
  • Create New...