I can help with directing you
I was pointed to this thread by the same person who probably told you about those tools since those are what I use
I use one other tools as well, TSearch
. (My copy I use. Should be safe but never know...)
What I do usually is play up to a point where the text is shown and then load up TSearch and attach it to the game (Open Process I believe), click on Hex Editor, and then click on the search icon. I then paste in whatever japanese text I see (I type it manually using JWPce or you could use Windows IME tool). TSearch accepts SJIS input for searching so makes it easy
I do this to verify what I'm seeing is SJIS since they could easily use graphics for the text (Shikigami no Shiro *shudder*) or anything else they wish. Now assuming that it's SJIS... (SJIS table in case you want to use something that can take in tables : SJIS
I do two things. I'll do a search using MadEdit's find in files tool and search through all the files of the game (make sure to set text encoding to SJIS if using Japanese text or it may not find it if it's unencoded). If I get lucy and it's not encrypted or compressed then I open that particular file and study it's format and write whatever tools are needed.
But if I can't find the text so easily...
I then fire up OllyDbg and then open the game with it. I then go ahead and run it. From there I'll try to pinpoint exactly when the text is loaded. Usually your text either gets loaded when a stage loads or after the title screen. Depends if they use separate chunks for text or one huge file. Memory is cheap now a days so devs get lazy
(I can vouch for this one
So once I pinpoint where it's roughly at I restart the game using OllyDbg, get to that point in the game or right before it (as close as you can), and then put breakpoints on all CreateFiles. Right click on the code window and tell it to Search for All References or Imports... I forget which... it'll bring up a window with all the windows functions it calls into. Search for CreateFile and breakpoint them all. Have the game go and then...
It'll break on each file that's being opened. From there I'll let each one run through and use TSearch to see if the text appears (forgot to mention you want to attach it at this point
) Once I see it I make a note of what file was used.
Then I restart OllyDbg again, get up to that point and then either if I'm feeling lucky I'll do it early or I'll wait till it's about to open the file and then put make breakpoints on all ReadFiles. ReadFile is what's used to read the file of course so you'll see it get accessed A LOT. So recommend it to only set it when needed if you can
So basically I do the same thing with readfile almost. Here you make note of where OllyDbg says it's going to be stored at. Look for which register it says is the buffer pointer and then right click the memory view and tell it to use that buffer location or you can type the register it's using which is the same thing
Then hit F8 to step over it and go there, search for that chunk using the hex you see using MadEdit (set it to find hex on this one) and see what file it pulls up. Then hit F9 and see if TSearch can find it. If not, repeat ad naseum.
And voila! You found the file it loads from and almost where it decrypts/uncompresses it from
Mind you this assumes the game isn't too crazy in how it does things. As it doesn't need to use the windows functions directly but can use other ways of getting to them such as setting a pointer to that point that'll call that function and call that (something like that.. I forget how it looks but another game I'm working on does that...). Or they can load up everything at the beginning and it's a pain digging through it all or they break when you attach a debugger immediately or.......... So hopefully this one isn't too bad
Also with TSearch attached you run the risk of the game throwing an exception and crashing so don't keep TSearch attached all the time.
Also, one thing you can do too if it's compressed and such, you can actually dump it all from memory. Just jump to it in memory using OllyDbg and then tell it to dump that block out. Then use MadEdit to pare it down and voila! You have a nice unencrypted version of your file
This assume it doesn't decompress a line at a time or some such craziness (I've seen it before...).
If I get a chance (and I am very slow). I can help take a look at this one to provide you more specific guidance.
One day too I'll write a guide about this...
FAST6191 makes a great point too. PC can be a crazy beast due to how wide open it is. For compression formats I agree with the most widely used one being LZSS (and for consoles as well). It decompresses fast and also is free and open sourced as well (see here for the code)
Hope this all helps
Edit: Curious, are we talking the fighter or the visual novel? Either works for me as I enjoy visual novels. Fighters I suck at playing