News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Final Fantasy 3 (NES) - Original Intro/Opening - Tutorial  (Read 3760 times)

papermanzero

  • Jr. Member
  • **
  • Posts: 47
    • View Profile
Final Fantasy 3 (NES) - Original Intro/Opening - Tutorial
« on: April 10, 2011, 05:19:36 am »
Hi everyone,

I want to share my experience with Final Fantasy 3 hacking.
My origin was the Final Fantasy 3 Translation created by Alex W. Jackson, Neill Corlett, SoM2Freak.
http://www.romhacking.net/trans/141/

With this translation, as base, I changed the intro/title screen to the original developer cast.
First, use the IPS Patch of Alex W. Jackson, Neill Corlett and SoM2Freak, then download and use this IPS patch.

Download:
http://www.megaupload.com/?d=BCF76SQ9
http://hotfile.com/dl/113986928/3926f4f/Final_Fantasy_III_-_Original_Title_Intro.ips.html

Information about this hack:
The following table contains the charset which are used in the Opening / Title Intro:
Spoiler:
Quote
60=A
61=B
62=C
63=D
64=E
65=F
66=G
67=H
68=I
69=J
6A=K
6B=L
6C=M
6D=N
6E=O
6F=P
70=Q
71=R
72=S
73=T
74=U
75=V
76=W
77=X
78=Y
79=Z

The next table contains the charset which are normally used in the game:
Spoiler:
Quote
A4=a
A5=b
A6=c
A7=d
A8=e
A9=f
AA=g
AB=h
AC=i
AD=j
AE=k
AF=l
B0=m
B1=n
B2=o
B3=p
B4=q
B5=r
B6=s
B7=t
B8=u
B9=v
BA=w
BB=x
BC=y
BD=z
8A=A
8B=B
8C=C
8D=D
8E=E
8F=F
90=G
91=H
92=I
93=J
94=K
95=L
96=M
97=N
98=O
99=P
9A=Q
9B=R
9C=S
9D=T
9E=U
9F=V
A0=W
A1=X
A2=Y
A3=Z
CD=il
CE=li
d5d6=ite
ff=
74=
80=0
81=1
82=2
83=3
84=4
85=5
86=6
87=7
88=8
89=9
d7d8=la
d9=ck
cf=ll
bf='
c1=.
75=
72=[call]
d0d2=ill
d0d1=ili
29=Th
48=e
2a=an
c8=:
58= s
4d=t
42=st
3f=ou
4c=s
49=f
37=is
4f= b
3b=me
41=re
3e=or
c9=...
2e=ea
43=th
2d=at
57= p
36=in
44=to
59= t
35=he
2f=ed
4e= a
47=d
33=gh
55= m
3d=on
31=er
2b=ar
4a=g
4b=o
3c=ne
32=es
38=it
56= o
34=ha
46=ve
c0=,
30=en
54= h
2c=as
52= d
50= c
7e='t
53= f
c4=!
5b= y
3a=le
ca=""
cb="
7f='v
5a= w
51= I
c5=?
7b='l
7c='r
40=ow
7d='s
be=''
45=us
7a='d
76=I'
39=ld
d3d4=lil
e0=[shield]
e1=[shirt]
e2=[armor]
e3=[helm]
e4=[glove]
e5=[ring]
e6=[claw]
e7=[nunchuck]
e8=[book]
e9=[rod]
ea=[staff]
eb=[hammer]
ec=[spear]
ed=[knife]
ee=[axe]
ef=[sword]
f0=[dkswd]
f1=[harp]
f2=[bow]
f3=[arrow]
f4=[bell]
f5=[bmrang]
f6=[star]

If you open the translated FF3 rom in a hexeditor (with one of the both tables) you can change the intro by yourself.
Between the Offset 0003E5F0 and 0003E767 is all the information for changing the intro screen/opening of FF3.

Starting from 3E5F0 the first value is A6. Till 3E600 the value A6 is always alternating appearing.
A6 is signaling the offset of the text which you are defining later.
The first value is 14 which is used for the copyright of Square. The next value is 25 (in hex; in dec it is 37) which is used for the first screen (in the case of this ips patch: the Programmers ...).
The offset contains the characters which are used in one screen.

The text starts at 3E613. This is the Title (Final Fantasy 3) and the mentioned copyright.
The real text which is displayed at the bottom of the screen is starting at 3E637.
Therefore we have to note several things. The Hex value "00 02" is signaling a screen change for new text (means the actual screen shall disappear and a new screen with a new text shall appear).
The value "01 02" is signaling a line break. After each "00 02" or "01 02" is another Hex value for the spaces. This spaces are used to center the text in the screen.
For example (starting at 3E637): We have the values "00 02 07 6F";
"00 02" is signaling a new empty screen;
"07" is signaling 7 empty spaces from the left TV boarder to the first character of the text;
"6F" is the first character "P" (look at the table for intro text) which is displayed.

Returning to the defined offset which was mentioned above. The offset is always pointing to the value with the empty spaces. In details, it always the value after the "00 02".
If you are adding or deleting text you must always change the offset to align the new screen.
Now you can change the text as you like. Note that you can only use the hex values between 3E637 and 3E767 for your text.
That's it. =)

I believe it's a good entry point to get some experience with general hacking. =)