Skip to content
alice pellerin edited this page Feb 1, 2024 · 8 revisions

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

Index

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

Fossil

The bytes from 0x000x05 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

Unknowns

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

Found

etc/kaseki_defs

Resources

https://github.com/opiter09/Fossil-Fighters-Documentation/blob/main/FF1/Kaseki_Defs.txt

Clone this wiki locally