Long time since I've posted! I finally got around to adding a routine for pre-rendered VWF now and just realized that the full 8x8 regular menu text routine I had is completely null now. Seriously, nothing uses it anymore. So I can remove an entire chunk of code and have a horde of more space now for anything!
Still have to get the PC names VWF'd again and fix a few screen oddities still but overall it's about ready again!
The routine that I have now is partially automatic. The first two bytes of data are the location of the pre-rendered text. The following byte after is the size of it for DMA transfer. Last one is the color of the text. Most of the data gets shot straight into RAM, which is transfered to VRAM for the tilemap. (This is the original routine when it gets thrown into RAM).
When it hits all the data that needs to be stored, it jumps into another routine that dictates the X/Y coordinates. EACH menu has it's own set of coordinates due to some strings being repeated, so it's mandatory to have it.
When the data finally gets stored into VRAM, there's a hard-coded preset for it that starts at the beginning of Layer 3 for Tales of Phantasia. As it sends the first round of data, it continues over a period of pointers until it hits FF, the end byte. When it hits the string after the first, it gathers the previous VRAM piece size, divides it then uses that as the new location to store. When it does that, it stores each string DIRECTLY next to each other automatically. No problems at all and it's all sequential.
When the data is in the midst of transferring, it sets the X/Y coordinates for the text and uses another hard-coded preset value for the beginning tile piece. As each piece gets stored, it counts up by 1. So as you set the data, it keeps counting up on itself and sets the tilemap exactly as it should. No problems again and it's still sequential.
Basically, it's all one giant assembly line that writes itself when the preset data is ready. Easier than before, less giant clumps of repeated code consumption, better organization and overall better quality than what I had before. The best part of all is there is ABSOLUTELY NO LAG!
The ONLY dynamic text that will be in any kind of menu are the PC names. Everything else will have to be pre-rendered. (Though, I need to figure out a compression routine as when I start doing Arte/Item names.. that's going to be a massive amount of data).
Edit: Most of the post rewritten for clarity sake and more of a 'step by step' of how my routine works.