Text Insertion: Old vs New


Heh, I noticed that someone changed the title. Well, I guess it’s outdated in “assemble EVERYTHING” land. (returns to noobland, where they need things with GUIs, even though the program is a buggy mess that likes eating effort.)

FEditor Adv

Take note, Crazy. :wink:


so uh why is this outdated again? should i worry about my current version?


No it’s fine, @Teraspark made me do it, I’ll change it back.

@Darrman The ones pertinent to insertion just require you to drag the file and say open with. Even if there was a gui, it’d at most be, like, “Click to run” or “Portrait:… Click to run”

(That is, ParseFolder just need to be run, with no inputs)


open the file go to the text editor and change the text hit Apply bam it's in the game

is what you’re up against. If you wanna make FEditor outdated, you’re going to have to be at least as good as it in user-friendliness. pls make feditor outdated pls


go to text editor and change the text
run the program

bam it’ll be incorporated next time you use EA


And there’s the rub: You gotta use 2 things to accomplish what 1 thing currently does.
Do not underestimate the importance of user friendliness. You’ll be hardpressed to out-date FEditor if you don’t take your user base into account.


The other thing is that even if it’s technically better and it does things without fucking the rom, if it adds just one step, or two or three extra clicks over FEditor’s process, it’s worthless to me. If I’m editing text, I just type in feditor, hit apply, and hit save. Two or three extra clicks doubles the tedium of applying changes, and when you multiply that over a hundred or a thousand text edits, it becomes a real slogfest. I already hate using FEditor and Nightmare at the same time since they overwrite each other. I want less tedium and less clicks, not more.


My response is that it’s also more work to open FEdtior as well. You need to close every other program you’re running (or you may have a conflicted copy)

@Klokinator This ties into your issue as well.

Although the actual process may involve more, a text editor does nothing to your ROM so you’re likely to already have that open. With FEditor you not only need to close everything else, you need to navigate to FEdtior (its dist folder, at least), and open it, then navigate to your ROM, then Save it and Close it, then open it again, and even then it sometimes messes up. You also need to know the textID of what you want to edit.

I think my way of doing text is much, much easier once you understand it. Maybe I can ask @InvdrZim13 for a testimonial since right now SoA is cobbled together from both methods.

Oh yeah, custom definitions also save keystrokes when making the text itself.
[Silent...] is much shorter than [ToggleMouthMovement]...[ToggleMouthMovement]. Zim especially abused the definitions much more than I expected. I’ll let it be up to him whether he posts any of his text though.


You’re damn right I abused the definitions, less keystrokes = better.

I’ll edit this in a sec with some text I guess, but overall I like the parsed more because it doesn’t break random text entries and you can put it all in at once and edit it quicker than with FEditor (at least it seems quicker to me)

[TS]Sawyer![4.] You’re alive![AN]
Yes,[4.] I must admit I have a[N]
similar reaction every morning.[AN]
You of course,[4.] I had no worries about.[AN]
Firstly,[4.] because of Oona,[4.][N]
and secondly because you’d[AN]
have a hard time listening to[N]
Death when he tells you to stay dead.[AN]
Now,[4.] it’s time to have some fun.[AN]
Never change,[4.] Sawyer.[AN]
By Velhari,[4.] it’s good[N]
to see you again![AN][TS][X]


Here’s some text that I formatted for our forum hack, just to show different style of text formatting.

I focused more on readability then on keystrokes.



Yaaay! All of the[N]
bandits are dead![A][ToggleSmile]

I don't know if that's[N]
something you should be[AN]
announcing so cheerfully.[A]

What are you going on[N]
about, silly Arch?[A]

... Ugh, never mind. I[N]
just need to find Kaga[AN]
and end this already.[A]

Whew. He's such a handful.[A]

Yeah. We better see[N]
what he's up to.[A]



FEditor has the ability to insert an entire game script at once. Been using it for years. I make all my changes in Notepad++ and only open FEditor for the single insertion.

Also, the argument of having to know the text ID or not is kind of moot when you need the ID anyways when you go to write your events.


For what it’s worth I actually hate using FEditor so the less I have to rely on it the better.

It would, in my opinion be much more efficient to do things like TEX1 CH1_MID_01 than TEX1 0x813 AND be able to look at all your text in one single file or even organise it by chapter. Plus there’s the whole thing about not having to worry about where FEditor writes data or overwriting your own events etc.


You could define the ID as that and put that in your events.

I have a Text_Definitions.txt that I use for the parser, and it basically looks like this, organized by chapter or boss/playable depending on what the text is:
//1-7 Text
#define DariusAxelTalk 0x963
#define One_7_Goal 0x1AA
#define One_7_Obj 0x1A6
#define PreChOneSeven 0x964
#define PreChOneSeven2 0x965
#define MarquesTalk 0x966
#define ReeceSaw 0x967
#define ReeceEli 0x96A
#define ReeceMarq 0x969
#define ReeceOwen 0x968
#define PostChOneSeven1 0x96B
#define PostChOneSeven2 0x96C
#define Arynden 0x96D
#define PostChOneSeven3 0x96E


Let me share with you some pre-view from our forum hack. These are all taken directly from the EA files with no editing:

//ChOne Related Text
#define ChOne_Text_1 0x90F
#define ChOne_Text_2 0x910
#define ChOne_Text_3 0x911
#define ChOne_Text_4 0x912
#define ChOne_Text_5 0x913
#define ChOne_Text_6 0x914
#define ChOne_Text_7 0x915
#define ChOne_Text_8 0x916
#define ChOne_Text_9 0x917
#define ChOne_Text_10 0x918
#define ChOne_Text_11 0x919
#define ChOne_Text_12 0x91A
#define ChOne_Text_13 0x91B
#define ChOne_Text_14 0x91C

#define ChOneGeneric_Name PrologueGeneric_Name //Same as prologue bandits
#define ChOneGeneric_Description PrologueGeneric_Description
//ChOne Texts
  setText(ChOne_Text_1, ChOne_Text_1_Pointer)
  setText(ChOne_Text_2, ChOne_Text_2_Pointer)
  setText(ChOne_Text_3, ChOne_Text_3_Pointer)
  setText(ChOne_Text_4, ChOne_Text_4_Pointer)
  setText(ChOne_Text_5, ChOne_Text_5_Pointer)
  setText(ChOne_Text_6, ChOne_Text_6_Pointer)
  setText(ChOne_Text_7, ChOne_Text_7_Pointer)
  setText(ChOne_Text_8, ChOne_Text_8_Pointer)
  setText(ChOne_Text_9, ChOne_Text_9_Pointer)
  setText(ChOne_Text_10, ChOne_Text_10_Pointer)
  setText(ChOne_Text_11, ChOne_Text_11_Pointer)
  setText(ChOne_Text_12, ChOne_Text_12_Pointer)
  setText(ChOne_Text_13, ChOne_Text_13_Pointer)
  setText(ChOne_Text_14, ChOne_Text_14_Pointer)
TEXTSHOW ChOne_Text_7 //"Yaaay! All of the. . ."
TEXTSHOW ChOne_Text_8 //"Aww! What a cute dog!. . ."
TEXTSHOW ChOne_Text_9 //"Woof woof! *bites*. . ."
#define Prison 0x17
TEXTSHOW ChOne_Text_10 //"Good Lord, that's a LOT of chests. . ."
SOUN 0xB1 //Unlocking door
SMOV 0x3 6000 //Money to give
TEXTSHOW ChOne_Text_11 //"Whoa, that's a lot of money."
TEXTSHOW ChOne_Text_12 //"So that's it? Can I. . ."
#define Sanctum 0x2D
TEXTSHOW ChOne_Text_13 //"There it is, milord. . ."


I didn’t know of that alltext-parser-like function. I’ll admit that’s pretty useful.

The way the new parser sets up, you only need to access the textID once. Then it’s in your EA insallation files and you can refer to it with a more informative name. And when editing ,you can use a folder structure to find the text you want, and you only need to edit the text file.