-
Notifications
You must be signed in to change notification settings - Fork 0
RLS
RLS is only used in etc/kaseki_defs
to store a list of every fossil in the game. Interestingly, kaseki_defs
lists 999 fossils, but many of them are blank (all 0s). Fossils are accessed by their index, so the first fossil (T-Rex Head) is listed at index 1 instead of index 0.
Indexes | Fossil type |
---|---|
1–400 | Normal vivosaurs |
401–464 | Special vivosaurs |
501–530 | Jewels |
601–630 | Droppings |
701–729 | Specials |
For vivosaurs, the fossils are listed head, body, arms, legs, thus each vivosaur takes up 4 indexes. Special vivosaurs are the same, but they only have 'head' fossils. They still take up 4 indexes, but 3 of them are blank. Jewels and droppings each take up 3 indexes per type, each of which has a different rock image (1, 17, 18). Finally, "specials" are miscellaneous items the player cleans throughout the game, such as Keymonite, dentures, level-up cleanings, etc.
0x00 0x04 0x08 0x0C
╭───────────────┼─────────────┼─────────────┼─────────────┼────────────┬────────────╮
│ Raw │ 52 4C 53 00 │ E7 03 00 00 │ 0C 00 00 00 │ │ │
├───────────────┼─────────────┼─────────────┼─────────────┤ │ │
│ Little-endian │ 00534C52 │ 000003E7 │ 0000000C │ Indexes... │ Fossils... │
├───────────────┼─────────────┼─────────────┼─────────────┤ │ │
│ Formatted │ "RLS" │ 999 │ 12 │ │ │
╰───────────────┼─────────────┼─────────────┼─────────────┴────────────┴────────────╯
╰╴File format │ ╰╴Constant offset to indexes
╰╴Number of fossils
Source: etc/kaseki_defs
Each index is simply an offset that points to the beginning of a fossil.
╭───────────────┬─────────────╮
│ Raw │ 7C 26 00 00 │
├───────────────┼─────────────┤
│ Little-endian │ 0000267C │
├───────────────┼─────────────┤
│ Formatted │ 9,852 │
╰───────────────┼─────────────╯
╰╴Offset to fossil (from RLS+0)
Source: etc/kaseki_defs
The bytes from 0x00
–0x05
are each a boolean value (either 0
or 1
) indicating some property of the fossil.
Fossil image
and Rock image
each point to an image at image/kaseki_*
. Each index has multiple images associated with it (normal, red, destroyed/green, etc)
Fossil config
and Rock config
appear to be bitmasks using the lower 17 and 16 bits respectively. It is unknown what they actually control.
Fossil name
is an index into text/japanese
.
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x08 0x0C
╭───────────────┼──────┼──────┼───────┼───────┼───────┼──────┼──────────────┼─────────────┼─────────────╮
│ Raw │ 01 │ 01 │ 00 │ 00 │ 00 │ 01 │ 00 00 │ 02 00 00 00 │ 12 00 00 00 │
├───────────────┼──────┼──────┼───────┼───────┼───────┼──────┼──────────────┼─────────────┼─────────────┤
│ Little-endian │ 01 │ 01 │ 00 │ 00 │ 00 │ 01 │ 0000 │ 00000002 │ 00000012 │
├───────────────┼──────┼──────┼───────┼───────┼───────┼──────┼──────────────┼─────────────┼─────────────┤
│ Formatted │ true │ true │ false │ false │ false │ true │ 0 │ 2 │ 18 │
╰───────────────┼──────┼──────┼───────┼───────┼───────┼──────┼──────────────┼─────────────┼─────────────╯
│ │ │ │ │ │ ╰╴Padding ╰╴Fossil image╰╴Rock image
│ │ │ │ │ ╰╴Unknown (only 0 for droppings and some specials)
│ │ │ │ ╰╴Unknown (only >0 for special vivosaurs)
│ │ │ ╰╴Destroyable
│ │ ╰╴Unbreakable
│ ╰╴Unknown
╰╴Exists
0x10 0x14 0x18 0x1C
╭───────────────┼─────────────┼─────────────┼─────────────┼─────────────╮
│ Raw │ 66 26 00 00 │ 00 70 00 00 │ A0 0F 00 00 │ 64 00 00 00 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Little-endian │ 00002666 │ 00007000 │ 00000FA0 │ 00000064 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Formatted │ 9,830 │ 28,672 │ 4,000 │ 100 │
╰───────────────┼─────────────┼─────────────┼─────────────┼─────────────╯
│ ╰╴Rock config ╰╴Buy price ╰╴Sell price
╰╴Fossil config
0x20 0x24 0x28 0x2C
╭───────────────┼─────────────┼─────────────┼─────────────┼─────────────╮
│ Raw │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │ 00 00 00 00 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Little-endian │ 00000000 │ 00000000 │ 00000000 │ 00000000 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Formatted │ 0 │ 0 │ 0 │ 0 │
╰───────────────┼─────────────┼─────────────┼─────────────┼─────────────╯
│ │ │ ╰╴Always 0
│ │ ╰╴Fossil name (jewels/droppings only)
│ ╰╴Unknown (1 for jewels, 2 for droppings, 0 otherwise)
╰╴Unknown (100 for jewels, 0 otherwise)
0x30 0x34 0x38 0x3C
╭───────────────┼─────────────┼─────────────┼─────────────┼─────────────╮
│ Raw │ 5A 00 00 00 │ 32 00 00 00 │ 00 00 00 00 │ 02 00 00 00 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Little-endian │ 0000005A │ 00000032 │ 00000000 │ 00000002 │
├───────────────┼─────────────┼─────────────┼─────────────┼─────────────┤
│ Formatted │ 90 │ 50 │ 0 │ 2 │
╰───────────────┼─────────────┼─────────────┼─────────────┼─────────────╯
╰╴Time │ │ ╰╴Number of unknowns (0 or 2)
│ ╰╴Unknown (only >0 for special vivosaurs, same as previous)
╰╴Passing score
0x40 0x44
╭───────────────┼─────────────┼─────────────╮
│ Raw │ 44 00 00 00 │ │
├───────────────┼─────────────┤ │
│ Little-endian │ 00000044 │ Unknowns... │
├───────────────┼─────────────┤ │
│ Formatted │ 68 │ │
╰───────────────┼─────────────┼─────────────╯
╰╴Constant offset to unknowns
Source: etc/kaseki_defs
I have no clue what these are, but there are always either 2 or none. They have a very limited set of values:
Unknown | Possible values |
---|---|
First |
1638 , 2048 , 2458
|
Second |
2048 , 2867
|
The values are usually the same for every fossil a vivosaur has, and the second unknown is only 2867
for Goyle. Every single special vivosaur, jewel, dropping, and special has 2048
/2048
except for McJunker's tools, which are 2458
/2048
.
╭───────────────┬─────────────╮
│ Raw │ 00 08 00 00 │
├───────────────┼─────────────┤
│ Little-endian │ 00000800 │
├───────────────┼─────────────┤
│ Formatted │ 2,048 │
╰───────────────┼─────────────╯
╰╴Unknown
Source: etc/kaseki_defs
etc/kaseki_defs
https://github.com/opiter09/Fossil-Fighters-Documentation/blob/main/FF1/Kaseki_Defs.txt