Sorry for the double post, but i figured i'd might as well bump the topic.
This it how the .cnut seems to work
08xx000000#ARW(y)TEXT#INP()
where xx is the hex byte with the byte length of the text + 6 (the #INP is also read.) and y is some random ascii number
I am fairly certain that the ARW(y) is defining the face/picture to be displayed.
after the #INP() there is a 10 (probably just ending the string)
then 3 empty bytes followed by a 08, which is saying "look! next byte is the string length!"and then it goes again.
there can be any number of those opcodes, ranging from #SPD(), to #CLR(), and there was a waiting one...you should probably find them all out and figure out what they do...
it shouldn't be too hard to write the code to dump stuff. you'll have to check how much freedom you have with expanding the text, though. it can sometimes get pretty ugly...
if you know how to program, then you should probably try it out. if not, i could help you do the script dumping, but i'm a busy 12th grader, so i won't have time to corrupt it over and over again to figure out which ARW() number is which face or figure out whether we can expand the text or not...
oh, and there's some random text at the very end of the arm9.bin. i can't read japanese, but whenever i do my first search for text, i look for AAAA! (in hirogana) people always shout in japanese games...
i have no clue what's at the bottom of the arm9.bin, but i think it's dialogue, randomly, since it's got punctuation and lots of Kana...
if you weren't finding any text, then perhaps you weren't using a table? oh, and not all of them seem to have text. the first few, for example, don't seem to have much...