Meloman19 / PersonaEditor

Persona 3/4/5 File Editor: Text, Graphics, Containers.
MIT License
61 stars 23 forks source link

Request: SMT3 Support #1

Closed KrisanThyme closed 6 years ago

KrisanThyme commented 7 years ago

The Persona games were derived off of the SMT3 engine, and many of their formats are similar or the same.. This is also the case for SMT3's font format, but there's sadly something throwing it off when trying to use this tool.

At a glance the header appears to be four bytes longer than later games, though I'm not sure why.. Also although your tool doesn't parse the file correctly, it does produce a misaligned image that vaguely resembles the font sheet. (You can make out the characters if you look closely enough.)

I'm not sure how difficult it would be for you to add support for this, but it would greatly help me in my translation efforts. Failing that though, I'd be grateful if you could at least point me in the right direction toward figuring it out for myself. Regardless I appreciate the time you've taken to hear me out, thank you.

Below I've included the NA and JP Fonts for SMT3, for reference.

font.zip font-jp.zip

KrisanThyme commented 7 years ago

Followup: Looks like the latest commit might already work for SMT3! (I was only using the latest release build before.) I haven't yet confirmed whether glyphs are working correctly, but it can dump the font image correctly at least. There is a catch to this though, the latest commit crashes trying to parse the FNT file as is, but if the header is modified (four null 00 bytes removed, and header size changed from 0x24 to 0x20) it will parse the file and output a correct BMP.

The latest commit needs to be updated to read the byte size of the header correctly (previous versions seemed to do this already?) and testing needs to be done to confirm glyphs are working correctly.. So for the time being I'll leave this request as Open. Hope this comes as some good news to you if nothing else!

KrisanThyme commented 7 years ago

Followup 2: It seems as though glyphs do work, though with some oddities. While the JP font produces perfectly expected glyphs, the NA version.. well, it's strange. The values it gives are definitely correct based on the file, but they don't make a lot of sense. (The cuts seem ridiculous, almost as though it's wrapping around the whole image.)

Repacking also works, though not without some modification to make it work ingame. Block size appears as though it needs to be the same size as the original file. If it's larger (your tool seems to include a lot of null data when calculating block size) the game hangs when trying to load it. That said, decompression and recompression work great, it's just a matter of being stricter with block size calculation for SMT3 support to be a reality. (Also the aforementioned issue with 24 byte headers causing a crash.)

Once again I'll leave this open so you can look it over later, but feel free to close this at any time. Thanks!

Meloman19 commented 7 years ago

At the moment I'm busy developing tools for our translation of P4. But I'll try to find the time for this font.

romhackingvn commented 6 years ago

Hope you will support! Thanks!

Meloman19 commented 6 years ago

You can try FNT compressor.

romhackingvn commented 6 years ago

Nice! Thanks Meloman19, you are my hero.