News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Whacka

Pages: [1]
If you've found the decompression routine then you might want to first step through it in the debugger while watching the memory to get an idea of how it works.
Most of the time this is some variant of LZ compression, which you can Google to get a basic idea of.
Rewriting the decompression routine out in C++ should let you get a dump of the raw text.
If you have a good enough understanding of the compression routine you can then recompress and reinsert these.

Alternatively, if you're confident in ASM you can try to modify the subroutine to load and read the text uncompressed (just loading raw text as though it went through the routine).
Depending on how much you need to translate you might be able to directly copy the decompressed text out of the game's memory.

I'm new to this myself, but I think you figured out the two options. Researching MIPS ASM and LZ compression techniques should help you reverse-engineer the compression algorithm.

Have you gotten any farther in messing around with the text of VC3? A serious translation effort has started up on Gamefaqs to get the game into English. Right now, the translators are mostly working from the Chinese patch of VC3, but trying to extract text from that version just returns gibberish.
Hey there, I haven't tried looking at the game again unfortunately.
As I said the game uses some sort of seemingly simple byteswapping function to store text (presumably to boost UMD load times) but I have no programming/disassembly knowledge to push further with.

I've been messing about with the unpacked files as well.

I've determined that the JIS2UCS.cnk is some sort of conversion table. You can view it properly in UTF-16LE. Leading me to guess that at least some of the content is in Shift-JIS and the others in UTF-16LE. It does seem to be the .mxe files that contain at least some of the games writing but I can't get a solid fix on text chunks.
I noticed that too, but I think they were only left over from development as changing parts of them seemed to have no effect.
Notably the contents of the JIS2UCS and UCS2JIS were swapped around in VC2 as opposed to VC3.

I've made a little progress;
Firstly, I edited the text in VC2's RAM (VC3 crashes when loading a savestate) - The game can render Katakana and Hiragana (didn't test kanji though.), and automatically adjusts the text box to fit whatever text it's rendering (I assume this would make reinsertion fairly easy.).

Tried "Hello World!" first then wrote "Kurt" on top of it :D .

Secondly, I tried to learn a bit about debugging and the game (VC2) seems to write each character using a MIPS "or" command and then subtract 1 from it.
Here I set a breakpoint to the letter "A";
Code: [Select]
106919 [Odin_Main] INFO  memory - 0x08BCF7F0 - write8(0x09680DA0, 0x42)
148495 [Odin_Main] INFO  memory - 0x08BDA5B8 - write8(0x09680DA0, 0x41)

So "!" becomes "space", "B" becomes "A" etc.

I don't really know anything about assembly or even writing a program though, so I can't get past this point and I doubt anyone wants to teach me, but I hope this helps someone!
Also I didn't mention it in my first post but I've got a basic knowledge of Japanese, my keigo, dialects and military vocabulary are a bit lacking but I'd be willing to translate a some of the game - from playing it this is definitely too big a translation job for just one person though.

Unfortunaly in the thread Szczepaniak posted they can't even locate the translation... I can't speak Chinese either :( .

I've been poking around VC3 E2 for a while.
The main game files are encrypted within a Criware .CPK file in the INSDIR data.bin, i.e. the game loads them directly from the on-disk data install file.
Looking at libfont.prx would be useless I think, .prx files are the PSP equivalent of .dll files.

To deal with the data.bin archive;
 - Run the game to the title screen with the JPCSP emulator to decrypt the data.bin (into it's tmp folder).
 - Unpack it to 1000~ files with the program "QuickBMS" and it's Criware .cpk script.
 - Repack with the Criware SDK (uncompressed, filename only).
 - You can test the game in JPCSP by replacing the original decrypted file with the repacked one.
 - Currently no way to reencrypt.

I'm not having much luck finding the actual text though.
I think it's within the .MXE files, in some a byte-swapped format or something (a hint might be the UCS2JIS.CNK and JIS2UCS.CNK files also within the data.bin file).
I've been able to find some SJIS strings in the later mission and the game_info_xxx.mxe files (maybe the DLC intergrated into the E2 version used SJIS?)


If anyone can help, much appreciated.

Pages: [1]