Wizardry PSP game: uses non-Latin dev-Font; ripping it need advice. BUFWIDTH...

Started by aweigh, May 01, 2016, 08:46:17 AM

Previous topic - Next topic


Game is Wizardry Empire 3 for the PSP (also released on the PS2 but both versions use the same non-Latin font. I checked just to make sure the PSP version was "easier").

I have extracted ALL of the game's important textures using Ninja Ripper and uMOD in conjunction with PPSSPP. However I have not been able to extract the actual internal font it utilizes for the "game text / dialog" as it never shows up during debugging: instead all of the text, and i mena EVERY PIECE; it comes out canned and all-at-once. It also comes out in seperate, and disparate textures. The game uses a second font which DOES support latin characters however the game only utilizes it for stuff like the player's party characters and their names, and other misc. stuff. I've even succesfully REPLACED that secondary mini-font map several times and it goes just fine: but it doesn't change any of the game dialog. Obviously. That is when I realized it used another font.

First I thought: must be using internal PSP font. A friend however clued me in while he dug around that it was using a supa-secret font that was not PSP system. Sure enough... I'm looking at its header and it's matrices and whatnot right now, boy oh boy, except I don't know how to proceed now.

Things that could help:

- Reduce font pixels by half. Cannot do this; have not done any ASM functions studying. Have never coded. Hex-editing is the closest.

- Reduce the BUFWIDTH's horizontal dimensions. The main problem is that since the letters are so large they go on and on and on and on right off the right side of the screen. The font HEIGHT is not a problem though. I have seen in PPSSPP's debugger the different BUFWIDTH's for the SEPERATE canned textures it spits out during dialog/scenes/anything, but have never been able to catch the source of those canned textures during the debugging even running a tracer and using the memory breaks. Had to learn how to do that.

- Extract the font (it is a tim file LOLOLOL) and... you guys tell me. This is the first time in my life I've ever had to or wanted to edit graphical images or edit them. All I have is my free version of Photoshop and a no idea how to begin editing an image. I know something like a font map/tile (?) has certain properties, dimensions i think, that correspond to specific vertices/matrices from the game and breaking those via editing would render the attempt moot.

- Finally, Is it possible to edit something like the font file's WIDTH or even its pixels just through my hex editor? If it means going through every single point of its matrices/vertices, which are like 200, and changing some hex value or whatever on each one then I am willing to do that. No prob.

Alternatively what about inserting hex/data of a NEW font right where the game's font file is stored in the umddata.bin of the game? i don't know and i apologize if that sounds incredibly dumb.

When I was translating the prequel, Wizardry Empire 1, I was shown how to make that game's font incredibly skinnier and less "bolded" by finding where the value that dictated the FW_WIDTH of the game's font (the game had it at 83 04 which is "500" and a ridiculous amount of FW_WIDTH. I set it to 2C 01 and it looked amazing: and it also fixed all of the text-is-too-big problems I had been having! Can't that be done with this PSP game too?

(Here you can see I tried simply reducing by 50% the texture's dimensions and then reinserting. LOL i used paint)

(this is the word KEEP which I translated into english via normal hex editing. However the game spits it not letter by letter but all at once in one super-long HORIZONTAL texture)

(This is the game's second font that it only uses for stuff like the status screen, misc. stuff really; mostly for the player's party names. I already tried flat-out replacing it with many other fonts and it worked fine: no dice on affecting the actual game text though)

(a basic example of the crazy font wrapping. if i move a 0x00 to the left of the word CASTLE then the word goes to the right and breaks apart; if i remove the 0x00 from the right and place it on the left and move the word CASTLE a few spaces to the right then it shows up fine in game. I can't even...)

(here you can see very plainly what the second mini-font is used for)

(here I include this one so that you can take notice of that big white circle. I forgot the game doesn't support latin and I included a normal question mark, 0x21, instead of a FW question mark, 8148. whenever anything latin shows up that is how the game displays the character: a big white circle. no exceptions.)

(finally this last one is simply a screengrab of the PPSSPP debugger doing it's thing. you can see there the way the game spits out the texture for the text)