Still, I don't know if it would work for most games.
How about listing some requirements that would have to be met or something.
I did it in Zelda 1, but that's a special case. It needs to be a game that uses VRAM (since VROM should by definition not be writable), there needs to be enough free VRAM space to write the entire string in tiles. I suppose you could overwrite the font, but that's only a good idea if there is only ever one string on the screen at a time.
(in the case of Zelda, it works because dialogue is only ever two lines, and there's enough blank tiles (was probably kana in the Japanese version) that I could write out the entire string in VRAM without worrying about screwing up the numbers/letter tiles used for all the rest of the text)
The problem comes along because the NES PPU can only access 8KB of memory for tiles, and often the space is already claimed by the font (if you have several menus on screen at once, you probably want a set of fixed-width tiles to remain in VRAM so you don't screw up other menus)
I totally agree with King Mike here.
1) It needs to have VRAM because you have to actually modify the tileset, the "Pattern Table"
2) You need to have enough free tiles to stand for the characters to be written
3) You need to have some free memory in the NES, 1 byte per pixel row and I think maybe 4 more bytes? (I haven't looked at the routine in months), some of them in the later group needed to be in Page 0, but if ROM space and time aren't an issue they could be anywhere.
In the case of Romancia:
1) It already was writing the font to the Pattern Table in VRAM, just NOT VWF, instead they were switching between Katakana and Hiragana using the same codes for letters in both.
2) It is 3 rows of 10 tiles or 30 characters in the pattern table permanently dedicated to the text.
It sounds identical to how KM says he changed Zelda 1, but it sounds like Zelda might have had less dedicated tiles?
KM, how many dedicated tiles per each of the 2 rows in Zelda?
If you need someone to test the game, I can ask for help at DigitalPress or NintendoAge. Lots of people have PowerPak flashcarts there.
Kitsune Sniper, please, go ahead and ask someone to try it. I would be interested to see if it works perfectly on the real thing. My guess is it is going to work; I didn't do anything that fancy, BUT I wouldn't be surprised if it makes the screen flash while the text is being written or while it is erased since the timing was so critical in the emulators.
I only have a Wildcard for the SNES, so I couldn't test it myself.
Many (most?) games don't need to write the text during the NMI. Games that aren't writing the text during the NMI will have no timing issue using my routine. The reason this game HAS to write the text during the NMI is that after talking to people if you start to walk away before the text is completely written or when you leave them after seeing the text, the text has to finish being written and erased, or just erased, WHILE your character is walking away.