************************************* | Star Fighter 3000 | | Documentation Project | ************************************* | Reference 3: File structure | | Changed: CJB 19.08.03 | ************************************* N.B. This text is best viewed at a display width of 77 columns. To create an index do a 'List of found' search for ">>". The information in this document pertains to the original Fednet release of the game (1.00) and is of little relevance to subsequent (iSV/APDL) versions. ----------------------------------------------------------------------------- >> Contents: ========= 3.1 Directory tree 3.2 Game files 3.2.1 !Boot 3.2.2 !Run 3.2.3 !Sprites 3.2.4 3DV_Handle 3.2.5 CMP_Handle 3.2.6 Code 3.2.7 Control 3.2.8 [Font] 3.2.9 Intro 3.2.10 Map1 3.2.11 MemCDA 3.2.12 Pic1 3.2.13 Pic2 3.2.14 Pointer1 3.2.15 Pointer2 3.2.16 SFX_Handle 3.2.17 [TexData] 3.2.18 [TexMap] 3.2.19 G-G-G ----------------------------------------------------------------------------- >> 3.1 Directory tree ================== !Star3000 +-!Boot +-!Run +-!Sprites +-Code | +-3DV_Handle | +-CMP_Handle | +-Code | +-Control | +-Font | +-Intro | +-Map1 | +-MemCDA | +-Pic1 | +-Pic2 | +-Pointer1 | +-Pointer2 | +-SFX_Handle | +-TexData | \-TexMap +-Disc2 | \-Landscapes | +-Base | | +-FxdObj | | | \-Academy1-Warrior2 | | \-SprScape | | \-Academy1-Warrior2 | +-Graphics | | \-Chemical-Warrior | +-Hill | | \-Chem-Warrior | +-Level | | +-Animations | | | +-Blank | | | +-E | | | | \E_01-E23 | | | +-H | | | \-M | | +-FxdObj | | | +-Blank | | | +-E | | | | \-E_10-E_36 | | | +-H | | | | \-H_01-H-31 | | | \-M | | | \-M_03-M_36 | | \-SprScape | | +-Blank | | +-E | | | \-E_11-E_26 | | +-H | | | \-H_01-H_26 | | \-M | | \-M_05-M_27 | +-Missions | | +-E | | | \-E_01-E_36 | | +-H | | | \-H_01-H_36 | | \-M | | \-M_01-M_36 | +-Palette | | \-Default-RedShip | +-Planets | | \-Alien-Mars | +-Sky | | \-Chem-Warrior3 | \-Sprites | \-Chem-Warrior +-G-G-G \-Landscapes +-Base | +-FxdObj | | \-Academy1 | \-SprScape | \-Academy1 +-Graphics | \-Earth1 +-Hill | \-Earth +-Level | +-Animations | | \-E | | \-E_01 | +-FxdObj | | \-Blank | \-SprScape | \-Blank +-Missions | \-E | \-E_01 +-Palette | \-Default +-Planets | \-Earth +-Sky | \-Earth \-Sprites \-Earth ----------------------------------------------------------------------------- >> 3.2 Game files ============== >> 3.2.1 !Boot Filetype: &FEB (Obey) Purpose: Sets the game directory and loads the application icon. >> 3.2.2 !Run Filetype: &FEB (Obey) Purpose: Sets the game directory and wimpslot and runs the game. Notes: Contains invisible commands (defined in the module 'Sol' contained in 3DV_Handle) which are used to load and decrypt the files CMP_Handle, SFX_Handle, and Map1. For instance "Trim lines" in StrongED will produce no visible effect, but corrupt the Obey file! >> 3.2.3 !Sprites Filetype: &FF9 (Sprite) Purpose: Contains the application icon. Notes: The commercial distribution does not contain the icons to be used for the internal game files (&154,&300+,&400+). >> 3.2.4 3DV_Handle Filetype: &FFC (Utility) Purpose: Highly copy-protected code (31 times over, in a self-modifying way which disagrees with StrongARMs), which contains, and loads the module 'Sol'. Sol, when initialised, sets up an invisible command ' ', which is used subsequently to load CMP_Handle, SFX_Handle, and Map1. Other unused commands are also defined, including decompression (' ') and a command to trigger the copy protection ('Dtya'). The main purpose of Sol (and the reason that it is defended like a fortress) is that it prompts the user to insert the original program disc, and won't run the game unless you do so. Notes: The horrid copy protection code may be removed using either Wag Software's NoDisc, or my own Star Fighter patch. >> 3.2.5 CMP_Handle Filetype: &FFA (Module) Purpose: This is the module 'FDComp' used to load the game files, the majority of which are compressed. The compression algorithm used is the same as for other Fednet games e.g. the Stunt Racer 2000 track editor. A single command 'LComp' is defined, which decompresses a file to a specified memory address. The first word of the compressed files is the amount of memory needed for the decompressed data. Notes: This file is encrypted. Other modules implementing this compression format include DeComp (by David O'Shea), and Comp (©1993 The Fourth Dimension). Development versions of the game sometimes had this module named 'CMP_Handler'. The same compression algorithm is implemented as a command in the module 'Sol'. >> 3.2.6 Code Filetype: &154 (Fednet compressed) Purpose: Main game engine. Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.7 Control Filetype: &154 (Fednet compressed) Purpose: Support routines, menus, map, shop, file handling. Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.8 Font Filetype: &154 (Fednet compressed) Purpose: Undocumented Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.9 Intro Filetype: &154 (Fednet compressed) Purpose: Does the TV static effect, and displays the title screens, with fade effect. Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.10 Map1 Filetype: &FFD (Data) Purpose: The REAL game loader. Notes: This file is encrypted. Kills the module 'Sol', checks that the game directory contents are correct. Runs 'Pointer1' and 'Pointer2'. Loads the two title screens and 'Intro', starts the intro code. Loads, relocates and links the game engine ('Code') and the support code ('Control'). Starts the game. >> 3.2.11 MemCDA Filetype: &FFC (Utility) Purpose: Small utility to minimise RMA, sprite area, RAM disc, and allocate 160k screen memory. Notes: First code to be run. The 160k of screen memory is for buffering with 2 x 80k banks (each 320x256 8bpp). >> 3.2.12 Pic1 Filetype: &154 (Fednet compressed) Purpose: World Federation Entertainments Network title screen (as raw bitmap). Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.13 Pic2 Filetype: &154 (Fednet compressed) Purpose: Star Fighter 3000 title screen (as raw bitmap). Notes: Compressed with the standard Fednet compression algorithm. >> 3.2.14 Pointer1 Filetype: &FFC (Utility) Purpose: Defines mouse pointer shapes for TV channel display in introduction. Notes: Redefinition code with pointer bitmaps appended: Shape 1 - "Channel 0" Shape 2 - "No signal" Shape 3 - "Channel 3" Shape 4 - "Fednet Sport" >> 3.2.15 Pointer2 Filetype: &FFC (Utility) Purpose: Defines mouse pointer shapes for mission map/shop. Notes: Redefinition code with pointer bitmaps appended: Shape 1 - Cross pointer Shape 2 - "View Target" Shape 3 - Arrow pointer Shape 4 - N/E/S/W >> 3.2.16 SFX_Handle Filetype: &FFA (Module) Purpose: The module used to drive the sound effects and music in the game. 10 SWIs (SFX_a to SFX_j) are defined, which do actions such as pitch change, trigger sound effect, stop sounds, play music track etc. A separate manual (StrongHelp format) is available about this module. Notes: This file is encrypted. >> 3.2.17 TexData Filetype: &FFD (Data) Purpose: Undocumented >> 3.2.18 TexMap Filetype: &FFD (Data) Purpose: Undocumented >> 3.2.19 G-G-G Filetype: &FF8 (Absolute) Purpose: Undetermined, something to do with the game loader. Notes: Apparently completely unnecessary, may be deleted if copy protection is removed.