Author Topic: [FF8] kernel.bin structure  (Read 3382 times)

Colly

  • *
  • Posts: 148
    • View Profile
    • Final Fantasy VIII PL
[FF8] kernel.bin structure
« on: 2004-12-27 23:16:13 »
Hi
Now I try translate texts in kernel.bin. Sometimes I must write a few bytes more than original english text, so I must know, where are the pointers to all text' section.

So I search... and I can't find base to all of this :( .

First: from 04h to E0h (end at E1h) - there is pointers. I divide this onto 2 groups:
A - from 04h to 7Ch - these pointers has an adress to another pointers' sections, which are have adresses to texts.
B - from 80h to E0h - these pointers show adresses to texts' sections, who is analogical to pointers' sections.

Example:
04h shows pointers' section to texts' section which adress is on 80h;
08h - 84h;
0Ch - 88h, etc.

First pointer on A group is E4 00. So there is starting first pointer section. And here problem begins...

At E4h I see FF FF FF ........ - It's not the pointers to texts.
So I must search. At 80h I have 08 4E. Following to this adress I see first text - Attack. I start calculate and I see - second pointer is 7 bytes after first (Attack with equipped weapon). First is always 00 00, so second will be 07 00. Next text is Magic - its 32 bytes after beginning so the pointer of this will be 20 00. Next pointer must be 26 00.
So I have first 4 pointers: 00 00, 07 00, 20 00, 26 00. I moved onto the E4h and I start search.
At ECh I have 00 00 and 07 00 - first two pointers. Next I see FF A0 54 00 - it's not the pointers. At F4h I have 20 00 26 00 - so it's the pointers.
So there is: 4 bytes of pointers, jump 4 bytes forward and next 4 bytes of pointers. And that's it to the end of this section.

Second section - I try similarly - but it's not the same :-?

Text is start on 5188h and the section of pointers is on 21Ch. Let's see on 5188h:
First four pointers are 00 00, 05 00, 1B 00 and 20 00.

At 21Ch - I must search 00 00 05 00...
Yes - I see it on 258h. 4 bytes and lot's non-interesting stuff :weep: . Next pointers on 294h so its 56 bytes full of something. I read 1B 00 20 00 and again jump 56 bytes... (to 36 00 3D 00) and this 'jumps' to the end of section.

At another section I have even 132 bytes between this pointers and at every section value of this jump has different. Why? When I can check how many bytes I must jump? There is some rule to check this?
Please help me (and sorry about my English) :roll:

Colly

  • *
  • Posts: 148
    • View Profile
    • Final Fantasy VIII PL
[FF8] kernel.bin structure
« Reply #1 on: 2005-01-06 07:30:42 »
Sorry for not editing previous post, but I have news (for me ;) ).

I don't find yet a place where stored information about this "jumps" on each section, so I slowly create a .xls file with this :). Now I get some DTE which is use in kernel.bin :

E8=in
E9=e
EA=ne
EB=to
EC=re
ED=HP
EE=l
EF=ll
F0=GF
F1=nt
F2=il
F3=o
F4=ef
F5=on
F6= w
F7= r
F8=wi
F9=fi
FB=s
FC=ar
FE= S
FF=ag

Of course where is one character (for example in E9), after this is space :). If somebody have another DTE (FA, FD, some before E8 ) - please tell me.

Texts in kernel.bin uses a 'repeal' (? - I don't know this is right to this context) to some texts in namedic.bin: 'Restore', 'status', 'learns', 'ability', 'Magic', 'Refine', 'Junctions', 'Raises', 'command' and 'Magazine'.

This is use with '0E' in front of this :

33=[Restore]
34=[status]
35=[learns]
36=[ability]
37=[Magic]
38=[Refine]
39=[Junctions]
3A=[Raises]
3B=[command]
3C=[Magazine]

but this is in Qhimm's Garden.

But not only kernel.bin get names from namedic.bin. areames.dc1 (and surely another files ;) ) do this too.

kernel.bin uses DTE only in description on each name of attack or something, not in name. So if I use DTE on for example 'Shear Trigger", in menu I see 'She Trigger'.