Wiki source code of File System

Last modified by Banjeoin on 2024/02/02 16:54

Show last authors
1 Dinosaur Planet uses a **File System Table** (FST) for its assets.
2
3 The filesystem is located at offset 0xA4970 in the rom.
4
5 The following files are included:
6
7 |ID|Filename|Offset|Description
8 |0|AUDIO.tab|0x000A4AA0|Table of offsets into AUDIO.bin
9 |1|AUDIO.bin|0x000A4B0C|Soundbanks of samples/instruments
10 |2|SFX.tab|0x001BF088|Table of offsets into SFX.bin
11 |3|SFX.bin|0x001BF098|A soundbank of encoded sound effects
12 |4|AMBIENT.tab|0x009D65D0|Table of offsets into AMBIENT.bin
13 |5|AMBIENT.bin|0x009D65E0|MIDI-esque sequenced audio of ambient noise
14 |6|MUSIC.tab|0x00B033F8|Table of offsets into MUSIC.bin
15 |7|MUSIC.bin|0x00B03408|MIDI-esque sequenced music, a true goldmine of David Wise goodness
16 |8|MPEG.tab|0x010A34F0|Table of offsets into MPEG.bin
17 |9|MPEG.bin|0x010A4518|Over one hour worth of MP3 encoded dialog
18 |10|MUSICACTIONS.bin|0x01E6ABDC|//Music Actions (16 bytes per action)//
19 A collection of music commands/setups that can be called by TriggerPlanes, sequences, etc. Each command has various params controlling fade-in, volume, instrument masking (e.g. used for DFPT's different arrangements), etc.
20 |11|CAMACTIONS.bin|0x01E6EBDC|//Camera Actions (16 bytes per action)//
21 A collection of camera commands/setups that can be called by TriggerPlanes etc. Each command has params like FOV, min/max distance from player, height, transition length, 1st person view lockout, etc.
22 |12|LACTIONS.bin|0x01E6F3DC|//Light Actions (40 bytes per action)//
23 A collection of lighting commands that can be called by TriggerPlanes etc. or invoked by objects (e.g. SC_Lantern). Stores two RGB colours, along with various parameters like falloff radii, lighting layer, flicker settings, and more. Point lights and directional lights are possible, and can be applied in combination using different lighting layers.
24 |13|ANIMCURVES.bin|0x01E6F3DC|Sequence/cutscene tracks for objects.
25 Each track consists of multiple curves, such as object position, head rotation, mouth angle and more,
26 as well as a timeline of events, such as animation events, dialog events and sound effect events.
27 |14|ANIMCURVES.tab|0x01FD9B24|Table of offsets into ANIMCURVES.bin
28 |15|OBJSEQ2CURVE.tab|0x01FE8EFC|Binds an OBJSEQ index to an ANIMCURVES.tab index
29 |16|FONTS.bin|0x01FE9EFE|Contains... fonts!
30 |17|CACHEFONTSTAB.bin|0x01FED382|Currently unknown
31 |18|CACHEFONTSTEX.bin|0x01FED382|Currently unknown
32 |19|GAMETEXT.bin|0x01FED382|The game's on-screen localization (menus, subtitles, item descriptions, etc.)
33 |20|GAMETEXT.tab|0x01FFE340|Table of offsets into GAMETEXT.bin
34 |21|GLOBALMAP.bin|0x02002AD8|The layout of the world map.
35 |22|TABLES.bin|0x02002D24|Currently unknown - among other uses it stores a list of which TEX1 textureIDs are capable of texture scrolling (for waterfall effects, etc.)
36 |23|TABLES.tab|0x02003030|Table of offsets into TABLES.bin
37 |24|SCREENS.bin|0x02003074|Bitmaps with the text "Krystal's adventure..." and "Sabre's adventure...".
38 |25|SCREENS.tab|0x0204E094|Table of offsets into SCREENS.bin
39 |26|VOXMAP.bin|0x0204E0A4|Currently unknown, but likely defines which minimap image to use when within different volumes inside the world map.
40 |27|VOXMAP.tab|0x020501A4|Table of offsets into VOXMAP.bin
41 |28|TEXPRE.tab|0x020501AA|Table of offsets into TEXPRE.bin
42 |29|TEXPRE.bin|0x020512EA|Some textures (not used?)
43 |30|WARPTAB.bin|0x020E023A|Positions into the world map where the player can warp to.
44 |31|MAPS.bin|0x020E083A|Cell layouts, object lists and more relating to each map.
45 |32|MAPS.tab|0x02197C2A|Table of offsets into MAPS.bin
46 |33|MAPINFO.bin|0x021986EA|Metadata for each map, such as name and type(?)
47 |34|?|0x0219932A|
48 |35|?|0x021993F2|
49 |36|TEX1.bin|0x021993F2|Environment/model textures.
50 |37|TEX1.tab|0x0297283E|Table of offsets into TEX1.bin
51 |38|TEXTABLE.bin|0x02976156|Indices used to convert texture references into IDs for the tab files.
52 |39|TEX0.bin|0x02976C66|UI/minimap textures.
53 |40|TEX0.tab|0x02CCADE6|Table of offsets into TEX1.bin
54 |41|BLOCKS.bin|0x02CCBE42|Level mesh chunks.
55 |42|BLOCKS.tab|0x0325FE74|Table of offsets into BLOCKS.bin
56 |43|TRKBLK.bin|0x03260FB4|Converts indices used by MAPS.bin to level mesh chunk into IDs for BLOCKS.tab
57 |44|HITS.bin|0x03261024|Special collision data for each BLOCKS model in the game. These define lines (20 bytes long each) which activate special behaviours (jumping, clinging, stepping up, climbing, crawling, invisible walls, etc.) when the player, a vehicle, or certain enemies cross them.
58 |45|HITS.tab|0x032898A4|Table of offsets into HITS.bin
59 |46|MODELS.tab|0x0328A9E0|Table of offsets into MODELS.bin
60 |47|MODELS.bin|0x0328B9F8|The... models!
61 |48|MODELIND.bin|0x03477548|Converts indices used by OBJECTS.bin to model IDs for MODELS.tab
62 |49|MODANIM.tab|0x0347805E|Table of starting offsets into MODANIM.bin
63 |50|MODANIM.bin|0x03478868|Contains animation IDs for each model. -1 indicates a new animation bank.
64 |51|ANIM.tab|0x0347B36E|Table of offsets into ANIM.bin
65 |52|ANIM.bin|0x0347D752|The game's... animations!
66 |53|AMAP.tab|0x037AA752|Table of offsets into AMAP.bin
67 |54|AMAP.bin|0x037AB766|Bone remap tables for each animation in each model's MODANIM list.
68 |55|BITTABLE.bin|0x037DE966|The game's default bittable(?). The "Game Bits" system is used to track state in the game.
69 |56|WEAPONDATA.bin|0x037E0DE6|Weapon trail animation data for each of Krystal and Sabre's attack animations, defining the tip and hilt position of their weapon on each keyframe. Krystal/Sabre's OBJECT.bin entries contain a list defining which of their MODANIM entries make use of this data.
70 |57|VOXOBJ.tab|0x037E3C1E|Table of offsets into VOXOBJ.bin
71 |58|VOXOBJ.bin|0x037E3C26|?
72 |59|MODLINES.bin|0x037E3C26|Using the same data format as HITS.bin, these HITS lines are used for each of the special level-type objects that become Krystal/Sabre's frame of reference whenever they stand on them: the Galleon, floating icebergs, etc.
73 |60|MODLINES.tab|0x037E5586|Table of offsets into MODLINES.bin
74 |61|SAVEGAME.bin|0x037E562E|The default savegame file.
75 |62|SAVEGAME.tab|0x037E6E2E|Table of offsets into SAVEGAME.bin
76 |63|OBJSEQ.bin|0x037E6E3A|Groups of objects that belong to a single sequence.
77 |64|OBJSEQ.tab|0x037ECEC2|Table of offsets into OBJSEQ.bin
78 |65|OBJECTS.tab|0x037ED766|Table of offsets into OBJECTS.bin
79 |66|OBJECTS.bin|0x037EEB42|The object definitions, including their name, DLL type, models, and more.
80 |67|OBJINDEX.bin|0x037EEB42|Converts indices used by MAPS.bin and OBJSEQ.bin into IDs for OBJECTS.tab.
81 |68|OBJEVENTS.bin|0x037EEB42|?
82 |69|OBJHITS.bin|0x0382D794|Collision data for objects.
83 |70|DLLS.bin|0x038317CC|(((
84 Reloctable code modules that are hot-swapped during gameplay.
85 Each object in the game links to a specific DLL for their behavior.
86
87 See more: [[DLL System>>Main.Tech.Engine.DLL-System.WebHome]]
88 )))
89 |71|DLLS.tab|0x03B04BDC|Table of offsets into DLLS.bin
90 |72|DLLSIMPORTTAB.bin|0x03B064DC|Table of entrypoints into the main executable that DLLs use to link to specific function/data imports
91 |73|ENVFXACT.bin|0x03B06CF4|//Environmental Effect Actions (96 bytes per action)//
92 A collection of atmospheric commands that can be called by TriggerPlanes etc. There seem to be at least 3 different categories of EnvFxActions for setting up different environmental aspects: fog setups, ambience setups (vertex colour multiplier + skybox gradient texture), horizon setups (distant desert/mountain/etc. texture-strips and cloud textures). This is why TriggerPlanes often call 3 of them at once! The commands can store up to 8 RGB colours (in the case of fog-type commands, or 4 for ambience commands) which the game will blend between for each phase of the game's day/night cycle. These actions can also control which sun/moon sprites are used, and control rainfall/snow/weather effects.