PDA

View Full Version : [Tutorial] Editing or Adding Symbols to the Alphabet (RBY/GSC)


fyrkant
June 20th, 2011, 02:11 PM
Editing or Adding Symbols to the Alphabet (RBY/GSC)

----- FOREWORD

This is a simple tutorial on how to add new letters / symbols/ smilies / whatever you want to the alphabet in Pokémon RBY/GSC, or just to edit the existing letters (if you want to change the font, for example).
If you want to translate the game into a language that has some letters not already in the game or if you want to add little hearts in all of Proffessor Oak's sentences, but you don't know how to do any of this, you can use this tutorial.

The tutorial is for RBY/GSC, since I haven't tried it for any other games. Well, actually I've only tried it in Red, but I've at least seen that the alphabet looks the same in the other ones. Find out for yourself :-)

Difficulty level: n00b (like me)

(Note: I'm sorry if this topic is way too easy and doesn't need to have a tutorial, or if it has already been covered. A friend made me post it.)

Please correct me if anything's wrong in this. Hopefully I didn't get the offsets mixed up.

----- TUTORIAL

What you need:
* Tile Layer Pro (to edit the alphabet graphics)
* Hex editor to change the rom's text (I like WindHex)
* Table file for your rom (there's a basic one at the end of this)

Run Tile Layer Pro and open up the rom file that you wish to edit in it. In the "View" menu, change the "Format" to "1BPP". In the window with all the rom's stuff in it, go to the offset where the alphabet is.
Offsets...
Red Version: 11A50
Yellow Version: 10600
Gold/Crystal Version: D8000
... I guess that Blue and Silver correspond.
(You can see the offset at the bottom of the program window, and you can "Goto" an offset from the "Edit" menu.)

You will notice that there are some blank spaces between the alphabet and the symbols/numbers. That's where you'll be adding your new letters.
Compare yours to mine with the Nordic languages' letters in it - you can see it and other examples in the attached files to this post.

If you don't know how to use Tile Layer Pro, it's time to figure it out. Hints: click on the tile (blank space or existing symbol) that you want to edit, and it will show up in the small "Tile Editor" window. Click the colour you want in the "Palette Editor" and then click on the pixel you want to edit in the "Tile Editor" and it will draw. Your changes are visible immediately but will of course not be in effect until you click the save button.

And then, we want to put our new symbols or what-have-we into the game, of course. Open up your hex editor and rom, and find the text that you want to change (a good idea is to change Oak's introductory speech so you can quickly check that your additions work).
I'm not going to go through the basics of "hexing", as there are probably many tutorials around for that...

Well, how do we use our new additions to the alphabet? Just as the alphabet that's already used in the game, each symbol is assigned to a hex number (f.ex., 80 is A and 81 is B). In Red, the standard one ends at BF with the symbol 'v. The blank spaces that you used (assuming you didn't overwrite the existing symbols) are between C0 and DF. That means, in the order of which you drew them in the alphabet tiles, they have been assigned to those numbers.
Change Oak's intro speech (or some other convenient text) to have the hex C0, C1, C2 ... CF, D0, D1 ... to DF in it and then restart your rom and see if it showed up properly. This way you can also check which hex value corresponds to which symbol if you had trouble figuring that out for some reason.

After you know that it works, to make this easier for further editing you should add your additions to your table file. Theoretically, just add stuff like...
C0=Å
C1=Ä
C2=Ö
... to your table file. However, at least in mine, it doesn't work displaying any special characters, so what I actually use is more like...
C0=A*
C1=A"
C2=O"
DF=(heart symbol)
... which at least lets me see which symbols I'm using in the text even if I have to add them in by hex.

Below this spoiler tag is a basic table list for RBY in case anyone doesn't have one. Make a plain text file, put this list in there, and save as MyFabulousHackName.tbl (or save as a .txt file first and later rename it to a .tbl).
Note that 7F is blankspace and not just empty.


*51
/00
4F=(=)
52=(PLAYER)
53=(RIVAL)
54=(POK'E)
55=(+)
57=(#)
58=($)
7F=
80=A
81=B
82=C
83=D
84=E
85=F
86=G
87=H
88=I
89=J
8A=K
8B=L
8C=M
8D=N
8E=O
8F=P
90=Q
91=R
92=S
93=T
94=U
95=V
96=W
97=X
98=Y
99=Z
9A=(
9B=)
9C=:
9D=;
9E=[
9F=]
A0=a
A1=b
A2=c
A3=d
A4=e
A5=f
A6=g
A7=h
A8=i
A9=j
AA=k
AB=l
AC=m
AD=n
AE=o
AF=p
B0=q
B1=r
B2=s
B3=t
B4=u
B5=v
B6=w
B7=x
B8=y
B9=z
BA='e
BB='d
BC='l
BD='s
BE='t
BF='v
C0=(empty)
C1=(empty)
C2=(empty)
C3=(empty)
C4=(empty)
C5=(empty)
C6=(empty)
C7=(empty)
C8=(empty)
C9=(empty)
CA=(empty)
CB=(empty)
CC=(empty)
CD=(empty)
CE=(empty)
CF=(empty)
D0=(empty)
D1=(empty)
D2=(empty)
D3=(empty)
D4=(empty)
D5=(empty)
D6=(empty)
D7=(empty)
D8=(empty)
D9=(empty)
DA=(empty)
DB=(empty)
DC=(empty)
DD=(empty)
DE=(empty)
DF=(empty)
E0='
E1=PK
E2=MN
E3=-
E4='r
E5='m
E6=?
E7=!
E8=.
E9=(kana1)
EA=(kana2)
EB=(kana3)
EC=(arrow1)
ED=(arrow2)
EE=(arrow3)
EF=(male)
F0=(ed/yen)
F1=(x)
F2=(.)
F3=/
F4=,
F5=(female)
F6=0
F7=1
F8=2
F9=3
FA=4
FB=5
FC=6
FD=7
FE=8
FF=9


If everything worked out, you should be done now. Feel free to ask me if you need help with this, but easier might be to think and test things for a while as you will QUICKLY surpass my knowledge of this stuff that way.

giradialkia
June 21st, 2011, 03:47 AM
It's a reasonable tutorial, but you definitely, definitely need to work on the layout. It's far too clustered and difficult to read. I suggest working on that as soon as possible.

fyrkant
June 21st, 2011, 03:49 AM
It's a reasonable tutorial, but you definitely, definitely need to work on the layout. It's far too clustered and difficult to read. I suggest working on that as soon as possible.

That is what happens when a forum has to approve your threads before you can see/edit them again... :-)
It just garbled my post, if you had taken a look you'd see the HTML tags being displayed instead of doing their job, like that it's rather obvious what happened. Will be fixing that in a moment.

EDIT: Fixed, luckily I had saved the original post in a text file since I had a bunch of trouble posting it the first time...