ROM Text Dumping/Inserting


#1

Good day, everyone.

I had to restart my hack… again. The most bothersome part of starting over, to me, is replacing the text (which could take a long time with hundreds of entries). For some reason, FEditor stops 1/3 of the way when I try to dump the text from any of my hack copies. Would anyone please tell me (if you’re willing and able) a way to effectively dump and insert text from one ROM hack to another at once? If this is not reasonable, then would someone show me a way to insert multiple text entries into a ROM with one file? That way, I can make a backup text file in case I have to insert it… again.

Thank You,
Tommy Reagan Fernandez


Opposing Programs, Patches, and Plans
#2

You should check out the Buildfile method by CrazyColorz and CirclesEverywhere, It helps you insert probably anything via event files, just like chapter events. Every event you want to insert in your rom is included in a big event file (buildfile) and then applied to the rom with a .cmd
So it creates a new rom from the clean rom you’re using. So you don’t need to do any backup of the original rom.
Check this out :
Everything Assembler WIP Guide

And for texts in particular :
Text Processor (for use with buildfile method)


#3

FEditor has the ability to dump and insert entire game scripts.
Just press the ‘Dump’ button in the text editor to get the script file (if it doesn’t give the file an extension, you can still open it in a text editor).
To insert a script, just press the ‘Insert’ button and select a file that was previously dumped by FEditor.

If FEditor is stopping part way through the dump process, does it give you any error messages? Have you tried saving the ROM in FEditor, closing it, and then reopening it?


#4

Yeah, I tried that. I even experimented with other ROM hacks, and it rips their text just fine. What’s even weirder is that I can do everything else in FEditor just fine (insert animations, portraits, and even text dumps), but I cannot rip my hack’s text (from any previous version - dating back to half a year).

I used only FEditor to edit my text in game, and my game operates just fine. However, when I try to dump all of the text, the green bar on the bottom of the program fills up only a third of the way before the program stops and says “Operation complete”. It gives me a text dump that has only a third of the ROM’s text (and not the third I really wanted). I never messed with the coding of FEditor, so it should be operating just fine. The only problem I could think of that prevents me from taking the text out in full is the possibility of me using different versions of the program back before I found out that using different versions of it on one ROM is bad (which was a year ago). Could that have been a problem? If so, how?

EDIT: I’ve looked more into this problem, and I just encountered an… interesting phenomenon. It seems FEditor believes that text ID 0x054A does not exist in my ROM hack. This is why it keeps cutting off when I try to dump the text, but I have no idea how this could have happened. I will look more into this and see how can I resolve this issue.


#5

Sorry for the double-post, but I found the solution to my problem, and I wanted a separate post to showcase the solution for others with this problem.

So, I found out why FEditor could not read text ID 0x054A in my FE7 hack… I sacrificed it to the Gods.:sweat:

Following the “Use the Tactician name on a unit” documentation, I originally used 0x054A as the text ID for the Tactician’s name for a unit. However, I did not realize that FEditor would no longer recognize the ID. I could not access it, and I could not dump my ROM’s text past the ID. To fix this, I opened my ROM in a hex editor and went to the pointer of the text ID used (to find the pointer: type the text ID into a hex calculator, multiply by 4, and add the answer to B808AC {the base offset of the text table}). There, I found 18 BC 02 82, which is the pointer to the Tactician RAM data. I opened up a clean FE7 ROM in the hex editor, went to the same location as my text ID’s pointer, copied the first four bytes in that location, and paste-wrote it on top of the 18 BC 02 82. I saved my hack’s ROM to undo the Tactician’s name setup, and FEditor was able to access text ID 0x054A again. Now I can fully dump my ROM’s text.

Because I still need to use the Tactician’s name as a unit’s name, I decided to sacrifice text ID 0x133D instead. It’s the last ID in the original ROM and is only a song title for the Final Battle theme of the game (which is seen only in the music menu of the game anyway). This way, I can dump the text from my ROM hack with no issues. For those who wish to use the Tactician’s name for a unit, I recommend using this advice to minimize any issues with FEditor.

Thank you for your time, and thank you Solum and Primefusion for helping me with my problem.


#6

Yeah, FEditor doesn’t like pointers to non-ROM addresses. Idk if my text ripper would be able to handle it but I’d be able to debug it so it can.

(tbh I think, although imcomplete, it’s a good tool for migrating old files to buildfiles. I should update it to work with textprocess though.)