Points of Required Attention™
Please chime in on a proposed restructuring of the ROM hacking sections.
Views: 88,482,056
Main | FAQ | Uploader | IRC chat | Radio | Memberlist | Active users | Latest posts | Calendar | Stats | Online users | Search 04-25-24 02:22 PM
Guest: Register | Login

0 users currently in ROM Hacking Related Releases | 1 guest

Main - ROM Hacking Related Releases - Game Boy Advance Fire Emblem Patches New thread | New reply

Pages: 1 2

Celice
Posted on 04-14-07 04:06 AM Link | Quote | ID: 26452


Buzz Blob
Level: 39

Posts: 5/285
EXP: 379728
Next: 25043

Since: 04-06-07
From: Oroville, CA

Last post: 3685 days
Last view: 3647 days
What road block? I never had any trouble with Gaiden other than some crap pointers J2E messed up on.

Ah, either FESS nubs will learn or they'll not mess with Fuuin any. Simple. At the very least, it's something so easy and there's so many tutorials on it... they're jsut plain stupid if they can't get tables :/

Zeld
Posted on 04-14-07 04:22 AM (rev. 2 of 04-20-07 04:08 PM) Link | Quote | ID: 26463


Paragoomba
Level: 21

Posts: 13/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
They seem to be having enough of a hard time with pointers.

I'm sorry if I sounded rude, NightKev; that wasn't my intention.

I assumed FESS would be a bit more known and that either way you would respect what little sanity I have enough to guess that FESS meant something other than FE: SS, which you couldn't have known I would never type without a colon if I was referring to the game, which I would almost always call FE 8 instead. If I had thought to tell you that bit about myself, perhaps the misunderstanding could have been avoided.

By they way I have around 18 pages to type in the next two weeks as well as two take home tests and various other homework assignments and exams to study for, so this whole FE 6 easy text thing is about dead at the moment.

NightKev
Posted on 04-14-07 04:26 AM Link | Quote | ID: 26464


Cape Luigi
Level: 131

Posts: 384/4792
EXP: 26228235
Next: 196385

Since: 03-15-07

Last post: 3733 days
Last view: 3645 days
Posted by Zeld
They seem to be having enough of a hard time with pointers.

I'm sorry if I sounded rude, NightKev; that wasn't my intention.

I assumed FESS would be a bit more known and that either way you would respect what little sanity I have enough to guess that FESS meant something other than FE:SS, which you couldn't have known I would never type without a colon if I was referring to the game, which I would almost always call FE 8 instead. If I had thought to tell you that bit about myself, perhaps the misunderstanding could have been avoided.

By they way I have around 18 pages to type in the next two weeks as well as two take home tests and various other homework assignments and exams to study for, so this whole FE 6 easy text thing is about dead at the moment.
Well I figured you didn't mean the game but I had to say it anyway.

____________________

Zeld
Posted on 04-14-07 07:47 PM (rev. 3 of 04-20-07 04:09 PM) Link | Quote | ID: 26598


Paragoomba
Level: 21

Posts: 14/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
Text loaded to 0x2029404 in WRAM

08013b02 f7ef bl $0800384c ;I'm gonna hook from here

0800385e f09a bl $0809df18

0809df18 4710 bx r2 ;This goes to Intelligent Systems's custom HuffUnComp (they actually don't use Nintendo's SWI O_o)

So, yeah, FE 6 Easy Text progress looks good.

I should have a "working" patch up sometime today if I don't die of homework.

Edit: Why does "nin-ten-do" turn into "grandma"? What the fuck?

NightKev
Posted on 04-14-07 09:35 PM Link | Quote | ID: 26635


Cape Luigi
Level: 131

Posts: 388/4792
EXP: 26228235
Next: 196385

Since: 03-15-07

Last post: 3733 days
Last view: 3645 days
Posted by Zeld
Edit: Why does "nin-ten-do" turn into "grandma"? What the fuck?
what?

____________________

Zeld
Posted on 04-14-07 09:47 PM Link | Quote | ID: 26637


Paragoomba
Level: 21

Posts: 15/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
Posted by Zeld
(they actually don't use Nintendo's SWI O_o)

...

Edit: Why does "nin-ten-do" turn into "grandma"? What the fuck?


See? I typed nintend*o without the * and it parsed as grandma. Who's the smart ass that programmed that?

Anyhow, here's the FE 6 Anti-Huffman patch.

HyperHacker
Posted on 04-14-07 10:50 PM Link | Quote | ID: 26654

...
Level: 73

Posts: 371/1220
EXP: 3366555
Next: 119313

Since: 03-25-07
From: no

Last post: 6090 days
Last view: 6074 days
Very funny Xk. So what of Microsoft and Sony?

NightKev
Posted on 04-14-07 10:54 PM Link | Quote | ID: 26656


Cape Luigi
Level: 131

Posts: 391/4792
EXP: 26228235
Next: 196385

Since: 03-15-07

Last post: 3733 days
Last view: 3645 days
Posted by HyperHacker
Very funny Xk. So what of Microsoft and Sony?
Wha?

____________________

HyperHacker
Posted on 04-14-07 10:55 PM Link | Quote | ID: 26657

...
Level: 73

Posts: 372/1220
EXP: 3366555
Next: 119313

Since: 03-25-07
From: no

Last post: 6090 days
Last view: 6074 days
I was testing to see if they got filtered too.

NightKev
Posted on 04-14-07 10:56 PM Link | Quote | ID: 26659


Cape Luigi
Level: 131

Posts: 392/4792
EXP: 26228235
Next: 196385

Since: 03-15-07

Last post: 3733 days
Last view: 3645 days
Posted by HyperHacker
I was testing to see if they got filtered too.
Oh. Xk has an odd sense of humor

____________________

Zeld
Posted on 04-15-07 05:28 PM Link | Quote | ID: 26920


Paragoomba
Level: 21

Posts: 16/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
I might be reposting all the anti-huffman patches again soon...I just checked the FE 7 ROM again and it turns out there's just one extra instance of the text pointer table's base address. It is indeed loaded by a second text routine that looks to be complete, and therefore is quite possibly used at some point in the game.

So, to make all text guaranteed to be editable by the patch, I will have to change the BL at the end of the code I found in order to reuse the same custom routine I wrote last time. Fortunately this will be the only change I have to make for FE 7 due to the exact similarities between the routines, at least, at that point in the execution.

Hopefully the other two GBA FEs will have those similarities as well so that changing BLs will be my only needed effort.

Zeld
Posted on 04-16-07 09:29 PM (rev. 2 of 04-17-07 09:41 PM) Link | Quote | ID: 27320


Paragoomba
Level: 21

Posts: 17/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
Sorry for double post, but I thought it would be nice for you all if I brought to your attention that the site that is hosting the patches I've linked to is my site, and that I recently replaced the FE 7 Anti Huffman patch with a new version that alters the only other text routine (just in case it IS used by the game at some point) to guarantee that the patch works fine with all text.

In addition a pointer that points to 0x9000000 by default in the general area of 0x80cb572 can now be change to point to a second piece of the text pointer table, so that the original 0x133E pointers remain where they are and all loads of a pointer higher than the 0x133Eth pointer will load from the second piece of the table instead of from garbage data.

The problem is that it doesn't subtract 133E before multiplying the pointer ID by 4 and using it to load the pointer, so it will actually begin loading from 0x9004CF8 with the default settings.

Edit: The FE 8 patch is now updated with similar features.

lurid
Posted on 04-20-07 07:42 AM (rev. 2 of 04-20-07 07:52 AM) Link | Quote | ID: 28211

Newcomer
Level: 8

Posts: 6/8
EXP: 1784
Next: 403

Since: 04-14-07

Last post: 6207 days
Last view: 6206 days
Posted by Celice
What road block? I never had any trouble with Gaiden other than some crap pointers J2E messed up on.


The block I was referencing was this:

I would pop open the game in a hex editor, using a table that either I had obtained or created, and edit in-game text. The text would not be changed in the game. I had done several other of these operations on several other games and never had this problem. I could swear I wasn't the only one who ran into this issue, but I could be wrong, I suppose.

Zeld
Posted on 04-21-07 06:33 AM Link | Quote | ID: 28430


Paragoomba
Level: 21

Posts: 19/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
FE 6 Anti-Huffman patch updated.

I wish the hosting service was up for this forum so I could attach the .tbl files and Read Mes associated with editing text quicker using Translhextion.

Or is there some difficult yet doable way of uploading that I don't know about?

HyperHacker
Posted on 04-21-07 06:33 AM Link | Quote | ID: 28431

...
Level: 73

Posts: 449/1220
EXP: 3366555
Next: 119313

Since: 03-25-07
From: no

Last post: 6090 days
Last view: 6074 days
You could copy them into your post, man.

Celice
Posted on 04-21-07 08:30 AM Link | Quote | ID: 28453


Buzz Blob
Level: 39

Posts: 8/285
EXP: 379728
Next: 25043

Since: 04-06-07
From: Oroville, CA

Last post: 3685 days
Last view: 3647 days
Posted by lurid
Posted by Celice
What road block? I never had any trouble with Gaiden other than some crap pointers J2E messed up on.


The block I was referencing was this:

I would pop open the game in a hex editor, using a table that either I had obtained or created, and edit in-game text. The text would not be changed in the game. I had done several other of these operations on several other games and never had this problem. I could swear I wasn't the only one who ran into this issue, but I could be wrong, I suppose.

I never had this problem. Maybe you should try again ._.;;

Zeld
Posted on 04-21-07 11:07 PM Link | Quote | ID: 28589


Paragoomba
Level: 21

Posts: 20/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
Posted by HyperHacker
You could copy them into your post, man.


It's in the very first post of this thread, goose. That's the post everyone always sees when they come to this thread for the first time, right?

It just makes sense to keep everything in the first post, rather than digging through new posts to find updates.

That said, there's no point in posting a link to the patch in any other post, now is there? :\

Skreeny
Posted on 04-25-07 12:56 AM Link | Quote | ID: 29650


Cobrat
Level: 56

Posts: 118/653
EXP: 1321658
Next: 76518

Since: 02-21-07

Last post: 5340 days
Last view: 4841 days
He meant that you could copy and paste the contents of the .tbl files (or the readmes) into one of your posts. After all, they are plaintext inside.

Zeld
Posted on 04-25-07 08:47 PM (rev. 4 of 04-25-07 08:52 PM) Link | Quote | ID: 30072


Paragoomba
Level: 21

Posts: 24/73
EXP: 49400
Next: 543

Since: 02-21-07

Last post: 6097 days
Last view: 6010 days
Oh, yes, of course. I thought he was talking about the patches.

Yeah have some table files...they're kind of long, though.

Text to Hex Table

800A=[MoveFarLeft]
800B=[MoveMidLeft]
800C=[MoveLeft]
800D=[MoveRight]
800E=[MoveMidRight]
800F=[MoveFarRight]
8010=[MoveFarFarLeft]
8011=[MoveFarFarRight]
801C=[OpenEyes]
801D=[CloseEyes]
801E=[HalfCloseEyes]
801F=[Wink]
8020=[Tact]
8021=[ToggleRed]
00=[X]
01=[NL]
02=[2NL]
03=[A]
04=[....]
05=[.....]
06=[......]
07=[.......]
08=[OpenFarLeft]
09=[OpenMidLeft]
0A=[OpenLeft]
0B=[OpenRight]
0C=[OpenMidRight]
0D=[OpenFarRight]
0E=[OpenFarFarLeft]
0F=[OpenFarFarRight]
10=[LoadFace]
11=[ClearFace]
12=[ReOpen0x12]
13=[ReOpen0x13]
14=[ReOpen0x14]
15=[ReOpen0x15]
16=[MouthMove0x16]
17=[MouthMove0x17]
18=[Yes]
19=[No]
1A=[Buy/Sell]
1B=[Ctrl0x1B]
1C=[Ctrl0x1C]
1D=[Ctrl0x1D]
1E=[Ctrl0x1E]
1F=[Ctrl0x1F]
20=
21=!
22="
23=#
24=$
25=%
26=&
27='
28=(
29=)
2A=*
2B=+
2C=,
2D=-
2E=.
2F=/
30=0
31=1
32=2
33=3
34=4
35=5
36=6
37=7
38=8
39=9
3A=:
3B=;
3C=<
3D==
3E=>
3F=?
40=@
41=A
42=B
43=C
44=D
45=E
46=F
47=G
48=H
49=I
4A=J
4B=K
4C=L
4D=M
4E=N
4F=O
50=P
51=Q
52=R
53=S
54=T
55=U
56=V
57=W
58=X
59=Y
5A=Z
5B=[
5C=\
5D=]
5E=^
5F=_
60=`
61=a
62=b
63=c
64=d
65=e
66=f
67=g
68=h
69=i
6A=j
6B=k
6C=l
6D=m
6E=n
6F=o
70=p
71=q
72=r
73=s
74=t
75=u
76=v
77=w
78=x
79=y
7A=z
7B={
7C=|
7D=}
7E=~
7F=¦

FE 7/8 hex to FE 6 hex table (because of FE 6's two bytes per character crap)

00=<*bh:00>
01=<*bh:01>
02=<*bh:02>
03=<*bh:03>
04=<*bh:04>
05=<*bh:05>
06=<*bh:06>
07=<*bh:07>
08=<*bh:08>
09=<*bh:09>
0A=<*bh:0a>
0B=<*bh:0b>
0C=<*bh:0c>
0D=<*bh:0d>
0E=<*bh:0e>
0F=<*bh:0f>
10=<*bh:10>
11=<*bh:11>
12=<*bh:12>
13=<*bh:13>
14=<*bh:14>
15=<*bh:15>
16=<*bh:16>
17=<*bh:17>
18=<*bh:18>
19=<*bh:19>
1A=<*bh:1a>
1B=<*bh:1b>
1C=<*bh:1c>
1D=<*bh:1d>
1E=<*bh:1e>
1F=<*bh:1f>
800A=<*wh:0a80>
800B=<*wh:0b80>
800C=<*wh:0c80>
800D=<*wh:0d80>
800E=<*wh:0e80>
800F=<*wh:0f80>
8010=<*wh:1080>
8011=<*wh:1180>
801C=<*wh:1c80>
801D=<*wh:1d80>
801E=<*wh:1e80>
801F=<*wh:1f80>
8020=<*wh:2080>
8021=<*wh:2180>
32=<*wh:9f82>
41=<*wh:a082>
33=<*wh:a182>
42=<*wh:a282>
34=<*wh:a382>
43=<*wh:a482>
35=<*wh:a582>
44=<*wh:a682>
36=<*wh:a782>
45=<*wh:a882>
46=<*wh:a982>
75=<*wh:aa82>
47=<*wh:ab82>
76=<*wh:ac82>
48=<*wh:ad82>
77=<*wh:ae82>
49=<*wh:af82>
78=<*wh:b082>
4A=<*wh:b182>
79=<*wh:b282>
4B=<*wh:b382>
7A=<*wh:b482>
4C=<*wh:b582>
4D=<*wh:b782>
20=<*wh:b882>
4E=<*wh:b982>
21=<*wh:ba82>
4F=<*wh:bb82>
22=<*wh:bc82>
50=<*wh:bd82>
23=<*wh:be82>
51=<*wh:bf82>
24=<*wh:c082>
37=<*wh:c182>
52=<*wh:c282>
25=<*wh:c382>
53=<*wh:c482>
26=<*wh:c582>
54=<*wh:c682>
27=<*wh:c782>
55=<*wh:c882>
56=<*wh:c982>
57=<*wh:ca82>
58=<*wh:cb82>
59=<*wh:cc82>
5A=<*wh:cd82>
28=<*wh:ce82>
2D=<*wh:cf82>
61=<*wh:d082>
29=<*wh:d182>
2E=<*wh:d282>
62=<*wh:d382>
2A=<*wh:d482>
2F=<*wh:d582>
63=<*wh:d682>
2B=<*wh:d782>
30=<*wh:d882>
64=<*wh:d982>
2C=<*wh:da82>
31=<*wh:db82>
65=<*wh:dc82>
66=<*wh:dd82>
67=<*wh:de82>
68=<*wh:df82>
69=<*wh:e082>
38=<*wh:e182>
6A=<*wh:e282>
39=<*wh:e382>
6B=<*wh:e482>
3A=<*wh:e582>
6C=<*wh:e682>
6D=<*wh:e782>
6E=<*wh:e882>
6F=<*wh:e982>
70=<*wh:ea82>
71=<*wh:eb82>
72=<*wh:ed82>
73=<*wh:f082>
74=<*wh:f182>
3B=<*wh:4183>
3C=<*wh:4383>
3D=<*wh:4583>
3E=<*wh:4783>
3F=<*wh:4983>
40=<*wh:4a83>
5B=<*wh:4c83>
5D=<*wh:5083>
5E=<*wh:5283>
5F=<*wh:5483>
60=<*wh:5683>
7B=<*wh:5883>
7C=<*wh:5a83>
7D=<*wh:5c83>
7E=<*wh:5e83>

The FE 7 and 8 table can be used to view the text, but the following table must be used to view FE 6 text hex and plain text

00=[X]
01=[NL]
02=[2NL]
03=[A]
04=[....]
05=[.....]
06=[......]
07=[.......]
08=[OpenFarLeft]
09=[OpenMidLeft]
0A=[OpenLeft]
0B=[OpenRight]
0C=[OpenMidRight]
0D=[OpenFarRight]
0E=[OpenFarFarLeft]
0F=[OpenFarFarRight]
10=[LoadFace]
11=[ClearFace]
12=[ReOpen0x12]
13=[ReOpen0x13]
14=[ReOpen0x14]
15=[ReOpen0x15]
16=[MouthMove0x16]
17=[MouthMove0x17]
18=[Yes]
19=[No]
1A=[Buy/Sell]
1B=[Ctrl0x1B]
1C=[Ctrl0x1C]
1D=[Ctrl0x1D]
1E=[Ctrl0x1E]
1F=[Ctrl0x1F]
800A=[MoveFarLeft]
800B=[MoveMidLeft]
800C=[MoveLeft]
800D=[MoveRight]
800E=[MoveMidRight]
800F=[MoveFarRight]
8010=[MoveFarFarLeft]
8011=[MoveFarFarRight]
801C=[OpenEyes]
801D=[CloseEyes]
801E=[HalfCloseEyes]
801F=[Wink]
8020=[Tact]
8021=[ToggleRed]
829F=2
82A0=A
82A1=3
82A2=B
82A3=4
82A4=C
82A5=5
82A6=D
82A7=6
82A8=E
82A9=F
82AA=u
82AB=G
82AC=v
82AD=H
82AE=w
82AF=I
82B0=x
82B1=J
82B2=y
82B3=K
82B4=z
82B5=L
82B7=M
82B8=
82B9=N
82BA=!
82BB=O
82BC="
82BD=P
82BE=#
82BF=Q
82C0=$
82C1=7
82C2=R
82C3=%
82C4=S
82C5=&
82C6=T
82C7='
82C8=U
82C9=V
82CA=W
82CB=X
82CC=Y
82CD=Z
82CE=(
82CF=-
82D0=a
82D1=)
82D2=.
82D3=b
82D4=*
82D5=/
82D6=c
82D7=+
82D8=0
82D9=d
82DA=,
82DB=1
82DC=e
82DD=f
82DE=g
82DF=h
82E0=i
82E1=8
82E2=j
82E3=9
82E4=k
82E5=:
82E6=l
82E7=m
82E8=n
82E9=o
82EA=p
82EB=q
82ED=r
82F0=s
82F1=t
8341=;
8343=<
8345==
8347=>
8349=?
834A=@
834C=[
8350=]
8352=^
8354=_
8356=`
8358={
835A=|
835C=}
835E=~

You sure this was a good idea, taking up all this room?

Edit: Oh right, the Read Me

Credit to Flying Ace, Twilkitri (and whoever worked with him on the parser, if anyone did) and ~Zeld~ (but mostly Flying Ace) for control code documentation.

Credit to Twilkitri for inspiring ~Zeld~ to figure out how the hell to hack text on his own. ~Zeld~ was jealous of those ingenius parsers.

Credit to ~Zeld~ for developing a sound way to dump the translated FE 6 game script so that the translators wouldn't have to hand it over.

Credit to the translators for translating the game so that an English script could be dumped in the first place. :3

Credit to ~Zeld~ for making the .tbl and .ips files that make text editing so much quicker, as well as eliminating data loss worries that sprang up during parsing.

Whee tutorial time

---FE 6, 7, and 8---

Get Translhextion. It is a kick ass hex editor. Srsly

I will refer to Translhextion as "T Hex" from here on, for personal convenience.

Type the text you want in the game into notepad. Type the commands you want to use as they appear on the right side of the command in the Control Codes.txt file:

For a new line, type "[NL]", for a double new line, type [2NL], etc.

Use the return key to separate things if you need to make your script more readable.

FE 7 Example:

[OpenFarFarLeft][LoadFace][NL]
[MoveRight][NL]
[LoadFace][NL]
Twirly[NL]
[ClearFace][NL]
[OpenRight][LoadFace][NL]
[MoveLeft][NL]
Twirly[NL]

Use for the hex of a portrait, as seen above. Florina's portrait value is 0x33, so to load her face you must use [LoadFace]

Remember to use a [NL] after most commands. When you've made enough scripts that don't FSOD the game, you'll figure out when to use an [NL] and when you don't need one. As a rule of thumb, however, always use an [NL] after a . And of course, always use a after a [LoadFace], or you'll bust the conversation.

You don't have to be typing a conversation, though. This will work with any text in the game...just remember not to use a [LoadFace] when typing up non-conversational text (e.g. the blue background narrative text in between chapters...the faces are loaded separately in that case).

Anyhow, get your script typed up in notepad or some other simple text editor.

When you're done, hit Ctrl+A to select it all and copy and paste it into an empty T-Hex file. Choose "insert" as the pasting method.

Using T-Hex, load our .tbl using the "Script->Open Thingy Table" command. Load the FE 7 and 8 table.

"What if I'm doing FE 6 text?"

Too bad. You need to use the FE 7 and 8 table first because Translhextion gets confused by the absurdity of using 2 bytes to represent a single byte. I can't say I blame it because what you'll end up doing for FE 6 text is actually making the hex around twice as big as the text you typed, and it should be the other way around. That's why it's called optimization. But lo, FE 6 text uses 2 bytes per character, and so the resulting hex will be more. Pitiful!

Make sure you have the .tbl loaded, and press Ctrl+A again to highlight all of the text/hex in T-Hex. Click "Script->Dump Script".

Here's the cool part. Click the radio to dump the script to a new window (as opposed to a file) and leave the other options alone and click "OK". It should dump all of the script (by default it dumps everything that you have selected, though you can specify exact pieces). In the window that pops up you will see your script crummily displayed. At the bottom of this window will be a box that is labeled "optimize script".

CLICK IT!

Then, click "Re-Insert" on the right side of the screen. It should prompt you to either cancel the re-insertion or to replace all the extra space you have left over with zeros.

Click OK to fill the extra space with zeros, and all those [Commands] should be converted to hex, significantly shortening the file AND correctly formatting the data. Now, go to the end of the file and select from the last zero all the way to the second zero in the file - that is, the zero just after the zero you will use to end the conversation (assuming it's a conversation, but in any case, the last byte of any block of text will always be 0x00).

Delete all of those extra zeros (press the delete key and tell it to cut the bytes, preferably without copying the cut out bytes to the clipboard).

Your script should now be reduced to nothing but the necessary hex for the conversation and the 0x0D0A's that result from pasting a text file that has line breaks in it.

This is a problem and you must get rid of the line breaks in order to rectify the text. So, click "Search->Replace" after clicking the very first byte of the file. Type "" or ("wh" is the same as two "bh"'s, except the byte order is reversed. T Hex likes little endian I guess) in the top box and make sure the bottom box is completely empty. Click the "replace all following occurances" button to eliminate all those line breaks (and by line breaks I mean the ASCII line breaks, not the [NL] commands).

After all that you should have a proper hex dump of the text you want to insert into the game, unless you're doing FE 6 text. If you are, then skip past the next paragraph and come back to it after you reach the end of the FE 6 text tutorial thing.*

Save the text as a .dmp (I suppose you don't have to, but .dmp files and Visual Boy Advance get along) and place it in the ROM. Apply my Anti-Huffman patch (the FE 6 Anti Huffman.ips for FE 6, etc.), change a text pointer (figure out which one you're changing by searching for the text you want to change in the script dump and going to the first address that is displayed above the text you find; be wary of recurring text) to point to the new text, and set the uppermost bit of the pointer to flag the text as raw. Bam, text hack supreme

*Redirected from FE 6 text hacking:

At this point, load the table called "FE 6 Insertion Table" over the previous 7 and 8 table. Highlight all the text and choose to dump it again.

This time, uncheck the box labeled "separate byte format". Instead of clicking optimize and reinsert when you arrive at the dump screen, simply copy the text that appears in the screen. Close the dump window and open a new T Hex file (don't worry about saving). Paste the text you copied (use "Insert" as the pasting method again) into the text window of the hex editor and it should parse all those and codes as the proper hex.

After all that, load the FE 6 Table.tbl file and view the hex as FE 6 text. Look around for mistakes that may have occured.

I can almost guarantee that the hex for portrait values when using a "[LoadFace]" command will be screwed over because sometimes the portrait values are equivalent to an ASCII character that will be treated as text rather than a portrait value during the conversion from FE 7 and 8 text hex to FE 6 text hex. Manually correct this. Shouldn't be difficult since you should be doing each block of text separately. It's not like you're parsing an entire game script at once...

Now go back to that "*" you came from and read the paragraph on how to use my Anti-Huffman patch to change text without the parser.

Now all this looks long and complicated but it's actually very quick to do when you don't have to read through a tutorial.

And if you still happen to be doing better with the parser, well, be my guest. I'll just keep the pleasure of editing text fast and easy with no data loss to myself.

And the Control Codes

<*bh:00>: end convo/text [X]
<*bh:01>: new line [NL]
<*bh:02>: two new lines [2NL]
<*bh:03>: blue arrow (push A to continue) [A]
<*bh:04>: short pause in speech [....]
<*bh:05>: longer pause in speech (alltext uses this one) [.....]
<*bh:06>: longer pause in speech [......]
<*bh:07>: long pause in speech [.......]
<*bh:08>: Open speech bubble [OpenFarLeft]
<*bh:09>: Open speech bubble [OpenMidLeft]
<*bh:0a>: Open speech bubble [OpenLeft]
<*bh:0b>: Open speech bubble [OpenRight]
<*bh:0c>: Open speech bubble [OpenMidRight]
<*bh:0d>: Open speech bubble [OpenFarRight]
<*bh:0e>: Open speech bubble [OpenFarFarLeft]
<*bh:0f>: Open speech bubble [OpenFarFarRight]
<*bh:10>: Character 0x10 sets a portrait with the byte that follows; use Portrait List.txt to check value labels [LoadFace]
<*bh:11>: Clear current speaker's face [ClearFace]
<*bh:12>: reopen speech bubble (really fast) (also makes first bubble bigger) [ReOpen0x12]
<*bh:13>: reopen speech bubble (really fast) (again?) [ReOpen0x13]
<*bh:14>: same as 12 and 13 (?) [ReOpen0x14]
<*bh:15>: " " [ReOpen0x15]
<*bh:16>: Makes characters move their mouth (seems to toggle) [MouthMove0x16]
<*bh:17>: Makes characters move their mouth (more reliable) [MouthMove0x17]
<*bh:18>: gives a yes/no prompt (starts on yes) [Yes]
<*bh:19>: gives a yes/no prompt (starts on no) [No]
<*bh:1a>: gives buy/sell prompt (glitches if no shop?) [Buy/Sell]
<*bh:1b>: Unused [Ctrl0x1B]
<*bh:1c>: Invalid character select [Ctrl0x1C]
<*bh:1d>: Unused [Ctrl0x1D]
<*bh:1e>: Unused [Ctrl0x1E]
<*bh:1f>: No operation/Start on line 2 [Ctrl0x1F]
20-7F: Standard ASCII with 0x20 as a space, etc.
80: Movement flag
Types:
<*wh:0a80>: Move to far left [MoveFarLeft]
<*wh:0b80>: Move to mid left [MoveMidLeft]
<*wh:0c80>: Move to left [MoveLeft]
<*wh:0d80>: Move to right [MoveRight]
<*wh:0e80>: Move to mid right [MoveMidRight]
<*wh:0f80>: Move to far right [MoveFarRight]
<*wh:1080>: Move to off screen left [MoveFarFarLeft]
<*wh:1180>: Move to off screen right [MoveFarFarRight]
<*wh:1c80>: Open eyes (if closed or half) [OpenEyes]
<*wh:1d80>: Close eyes [CloseEyes]
<*wh:1e80>: Close eyes halfway [HalfCloseEyes]
<*wh:1f80>: Wink (character's outside eye) [Wink]
<*wh:2080>: Say Tactician's name [Tact]
<*bh:80><*bh:21>: Change text red (if used again, changes text back to black) [ToggleRed]
Using the position a character is already in as a destination causes them to "bounce". Using a destination that already has a character filling it will cause the characters to switch places. Also, notice the simililarities between the movement types and the "[Open]" commands. Note that there is a 4 character limit for conversations - clear one before loading a fifth each time.
81-FF: Question marks - Untested; most likely useless

Edit: Obviously the asterisks are in the "<*>" segments so that the forum wouldn't parse them into invisibility. They aren't supposed to be there.
Pages: 1 2


Main - ROM Hacking Related Releases - Game Boy Advance Fire Emblem Patches New thread | New reply

Acmlmboard 2.1+4δ (2023-01-15)
© 2005-2023 Acmlm, blackhole89, Xkeeper et al.

Page rendered in 0.039 seconds. (341KB of memory used)
MySQL - queries: 112, rows: 141/142, time: 0.019 seconds.