Problem with Text Processor using Buildfile method

Yes, i use a MAKE HACK.cdm and yes, I have tried different ids from objects, descriptions of objects and characters. On the other hand when I make a writing error in the fileInstall Text Data.event the assembly fails.

EDIT: Also, i checked the rom with HxD and the data is in the rom.

EDIT_2:

The ids i tested were:

  • 0x3f3 (iron sword name).
  • 0x279 (iron sword description).
  • 0x537 (Limstella name).

If the text is in the rom, then the issue must be that the pointer to the text wasn’t updated. That’s what the setText macro is supposed to do, though… I’m not quite sure what went wrong. Is the text table in the same place as in a vanilla rom? Based on the fact that you said you changed Limstella’s name, I’m going to assume you’re working with FE7. If so, what pointer is at 12C88? It should be B808AC.

Sorry, i’m a little new with this and i get lost with the second part. What is the “text table”? Can you explain it to me please?

I have a folder called tables where i have the nightmare modules to make changes in characters, items but… Also i made some other changes in things like music, units and all work fine.

EDIT: I checked the modified rom using HxD and searched in the offset 12C80, i found “B8 08 B4 A5” but im not sure if you are refering to that.

12C88, not 12C80. It’s actually a text pointer table; given a text id, say, 0x3F3, the function multiplies this by 4 (because pointers are 4 bytes long) and adds it to the text pointer table to get a pointer (in this case, it should be 0x9000000 since that’s where you assembled your text to) to the text itself (Iron Sword).

Well, i checked again and this is what i have:

Have you installed anti-huffman? It doesn’t seem so.
Include this into your buildfile. You’ll need this, but that wouldn’t fix if there’s an issue with the text table.

No, I do not have it installed. I tried to put it but when I started the rom, it showed me a black screen, I researched a bit about the problem but I could not fix it.

I have also tried to open the rom by FEditor to see the status of the modified texts, and these remain unchanged.

The pointers must not have been updated, then. Check 0xB808AC + 4*0x3F3 = 0xB81878.

This is what i have:

Looks like the pointer didn’t update. Question is, why? As I said, the setText macro should take care of that for you…

Out of idle curiosity, if you open Tools/Toll Helpers.txt, what’s the chunk of code that defines TextTable look like? It should be on line 15 and look like this:

#ifndef TextTable
    #define TextTable 0xB808AC
#endif

If this is correct, all I can think of is to assemble again and see if anything’s changed.

Here i think everithing is correct:

#ifdef _FE7_
#ifndef TextTable
    #define TextTable 0xB808AC
#endif
#ifndef PortraitTable
    #define PortraitTable 0xC96584
#endif
#endif

Thats why im lost, I also assemble the rom every time I make a change.
As i said im new into this so this maybe sounds stupid but the pointer at 12C88, its “AC08B8”, so its the same pointer that you told me before but reversed.

Right, stuff in the rom is written in little endian, meaning the bytes are written in reversed order (the “most important”, or highest, byte appears at the end). So 08B808AC will appear at AC 08 B8 08, as you can see.
I really dunno what’s going on, though; everything seems to be set up correctly. What version of EA are you using?

Im using EA v11.1.

Also, i started to read about inserting mugs and they dont show, maybe its because im doing something wrong since i readed it a little bit fast this morning but maybe its related with this problem too.

I have an idea. Can you open the make_hack batch file in notepad and show me the contents?

I have two files, the first one (i always use this):

cd %~dp0
copy "FE7_clean.gba" "FE_Hack.gba"
cd "%~dp0Event Assembler"
Core A FE8 "-output:%~dp0FE_Hack.gba" "-input:%~dp0ROM Buildfile.txt"
pause

And the second one:

cd %~dp0
copy FE7_clean.gba FE_Hack.gba

cd "%~dp0Tables"
c2ea "%~dp0FE8_clean.gba"

cd "%~dp0Text"
textprocess_v2 text_buildfile.txt

cd "%~dp0Event Assembler"
Core A FE8 "-output:%~dp0FE_Hack.gba" "-input:%~dp0ROM Buildfile.txt"

pause

I know the second automates the whole process, but I prefer to do the tables and the text personally, I have also tried it and the result is the same.

Core A FE8 is your problem. Change the FE8 to FE7.

The argument there is what defines the variables FE6/FE7/FE8. Since you have FE8, when assembling, the macro would use the FE8 definition of TextTable, which is not the same place as FE7’s. So you were editing data, just not in the right place (and almost certainly breaking something else completely unrelated at the same time).

1 Like

All the problems solved, including the one with the mugs. I feel like a retard now… :disappointed_relieved:

Thanks a lot for your help. :grin:

Glad to have finally figured it out! Don’t feel bad; making silly mistakes is part of hacking.

1 Like

Well, I think I’ve learned a lot from this problem, so it’s not that bad.

1 Like

That’s the right attitude! Keep it up!

1 Like