It seems like the game (currently) only supports fixed width font. What you need is a so called "Variable Width Font".
I recommend doing the following:
- If you can, try to figure out how the text routine is build up and see if there is anything that might resemble a character width table. There are PSP games that do have a width table sitting somewhere and you could adjust the width of the characters and make it look all nice and shiny
Here's an example what a width table can look like in a PS2 game:
Each 1 byte corresponds to the ASCII table character and holds the width value.
- If that doesn't work/the width table doesn't exist and everything is fixed width, then you might have to create a VWF in the executable file/ELF/eboot. Technically you would have to reroute (jump) the current text routine to your VWF code that for example, once alphabet characters are being used, the game should perform a VWF routine to draw each character on the screen and then go back to the original text routine. This probably would have to be done in the MIPS assembly code.https://gbatemp.net/threads/psp-asm-hacking-for-variable-width-font.374967/page-2
Update 1: Here are also some notes from a buddy on my team:
Seems like the guy already found some text, and judging by the GE debugger screenshot the game draws the text every frame (I hope it does it with quads/triangles instead of strips)
Next step would be putting a breakpoint on the text and see what function read it
Whatever the function does read it would most likely be the one that does the text rendering (or is some preprocessing, depends)
Then they can just scan the function for a fixed value add instruction
That's should be the one that would be used to set the coordinates for the display list
Defer that to some blank space on ram with some test VWF code and if it works you got most of the way there
November 01, 2020, 05:47:01 am - (Auto Merged - Double Posts are not allowed before 7 days.)
Update 2: Ethanol, our super MIPS hacker, took a closer look at how the game creates the text and he found out the following:
If you want to talk directly to him, you can visit us at our Growlanser 6 discord server here: https://discord.gg/59Nw2U2
Hope this can help you!