Jump to content

BASE.DAT: Difference between revisions

From UFOpaedia
m TFTD Structure: work in progress - intermediate save in case of error
TFTD Structure: full item list
Line 208: Line 208:
'''0F:''' Null character if the Base Name uses all 15 characters.  If this byte is non-0, the base name will happily overflow and read from the item quantities.
'''0F:''' Null character if the Base Name uses all 15 characters.  If this byte is non-0, the base name will happily overflow and read from the item quantities.


'''10-D9:''' Quantity of each item available at that base (signed 2-byte little-endian integers; see explanation in UFO section for details).
'''10-D3:''' Quantity of each item available at that base (signed 2-byte little-endian integers; see explanation in UFO section for details).
'''''(IN PROGRESS)'''''
  10  Ajax Launchers
  10  Ajax Launchers
  12  D.U.P. Head Launcher
  12  D.U.P. Head Launcher
Line 219: Line 218:
  1E  D.U.P. Head Torpedoes
  1E  D.U.P. Head Torpedoes
  20  Gas Rounds(x50)
  20  Gas Rounds(x50)
  22   
  22  P.W.T Ammo
  24   
  24  Coelacanth/G. Cannon
  26   
  26  Coelacanth/Aqua Jet
  28   
  28  Coelacanth/Gauss
  2A   
  2A  Displacer /Sonic
  2C   
  2C  Displacer /P. W. T.
  2E   
  2E  Dart Gun
  30   
  30  Dart Clip
  32   
  32  Jet Harpoon
  34   
  34  Harpoon Clip
  36   
  36  Gas Cannon
  38   
  38  GC-AP Bolts
  3A   
  3A  GC-HE Bolts
  3C   
  3C  GC-Phosphorous Bolts
  3E   
  3E  Hydro-Jet Cannon
  40   
  40  HJ-AP Ammo
  42   
  42  HJ-HE Ammo
  44   
  44  HJ-P Ammo
  46   
  46  Torpedo Launcher
  48   
  48  Small Torpedo
  4A   
  4A  Large Torpedo
  4C   
  4C  Phosphor Torpedo
  4E   
  4E  Gauss Pistol
  50   
  50  Gauss Rifle
  52   
  52  Heavy Gauss
  54   
  54  Magna-Blast Grenade
  56   
  56  Dye Grenade
  58   
  58  Particle Disturbance Grenade
  5A   
  5A  Magna-Pack Explosive
  5C   
  5C  Particle Disturbance Sensor
  5E   
  5E  Medi-Kit
  60   
  60  M.C. Disruptor
  62   
  62  Thermal Tazer
  64   
  64  Chemical-flare
  66   
  66  Vibro Blade
  68   
  68  Thermic Lance
  6A   
  6A  Heavy Thermic Lance
  6C   
  6C  ''(invalid - prints garbage if used)''
  6E   
  6E  ''(invalid - prints garbage if used)''
  70   
  70  ''(invalid - prints garbage if used)''
  72   
  72  Sonic Cannon
  74   
  74  Cannon Power Clip
  76   
  76  Sonic-Blasta Rifle
  78   
  78  Blasta Power Clip
  7A   
  7A  Sonic Pistol
  7C   
  7C  Pistol Power Clip
  7E   
  7E  Disruptor Pulse Launcher
  80   
  80  Disruptor Ammo
  82   
  82  Thermal Shok Launcher
  84   
  84  Thermal Shok Bomb
  86   
  86  Sonic Pulser
  88   
  88  Zrbite
  8A   
  8A  M.C. Reader
  8C   
  8C  Gauss Pistol Clip
  8E   
  8E  Gauss Rifle Clip
  90   
  90  Heavy Gauss Clip
  92   
  92  Aquatoid Corpse
  94   
  94  Gill Man Corpse
  96   
  96  Lobster Man Corpse
  98   
  98  Tasoth Corpse
  9A   
  9A  Calcinite Corpse
  9C   
  9C  Deep One Corpse
  9E   
  9E  Bio-Drone Corpse
  A0   
  A0  Tentaculat Corpse
  A2   
  A2  Triscene Corpse
  A4   
  A4  Hallucinoid Corpse
  A6   
  A6  Xarquid Corpse
  A8   
  A8  ''(invalid - prints ' Technician' if used)''
  AA   
  AA  ''(invalid - prints ' Squad Leader' if used)''
  AC   
  AC  ''(invalid - prints ' Soldier' if used)''
  AE   
  AE  ''(invalid - prints ' Terrorist' if used)''
  B0   
  B0  Ion-Beam Accelerators
  B2   
  B2  Magnetic Navigation
  B4   
  B4  Alien Sub Construction
  B6   
  B6  Alien Cryogenics
  B8   
  B8  Alien Cloning
  BA   
  BA  Alien Learning Arrays
  BC   
  BC  Alien Implanter
  BE   
  BE  Examination Room
  C0   
  C0  Aqua Plastics
  C2   
  C2  Alien Re-animation Zone
  C4   
  C4  Plastic Aqua Armour
  C6   
  C6  Ion Armour
  C8   
  C8  Mag. Ion Armour
  CA   
  CA  Solid Harpoon Bolts
  CC   
  CC  Aqua Jet Missiles
  CE   
  CE  P.W. Torpedo
  D0   
  D0  Gauss Cannon Ammo
  D2   
  D2  ''(invalid - prints 'Gauss Cannon Ammo' if used)''
D4
 
D6 
'''D4-D9:''' Unknown.
D8 


'''DA-FD:''' The next offsets are arranged so they're easier to understand. They are for facilities in the base:
'''DA-FD:''' The next offsets are arranged so they're easier to understand. They are for facilities in the base:

Revision as of 00:20, 6 April 2008

Ripped from Hatfarm / Chris Voss's great pages

Structure

BASE.DAT: Each entry is 292 Bytes long

00-0E: Base Name, pretty obvious

0F: Presumably the Null character if the Base Name uses all 15 characters

10: Base's short range detection capability.

12: Base's long range detection capability.

14: Base's hyperwave detection capability.

11, 13, 15: These are probably the high bytes for the Short, Long, and Hyper-wave detections respectively. Should always be 0 as a value of 100 (hex: 64 00) is perfect detection.

Logical values for the detection capabilities:

10 short, 0 long: This base has small radar(s) only.

20 short, 20 long: This base has large radar(s) only.

30 short, 20 long: This base has small and large radar(s).

100 hyperwave: This base has a hyperwave decoder(s).

The radar values can be set to 100 for perfect short range detection (presumably -- it definitely makes UFOs appear more often), but these reset to the correct values any time you complete a build in that base.

Table 1: Radar Ability Combinations
Radar Module / Scan Type Short Long Hyperwave
Small Radar 10 0 0
Large Radar 20 20 0
Hyperwave 0 0 100
Radar Combinations
Sm + Sm 10 0 0
Sm + Lg 30 20 0
Sm + Hyp 10 0 100
Lg + Lg 20 20 0
Lg + Hyp 20 20 100
Hyp + Hyp 0 0 100
Sm + Lg + Hyp 30 20 100


16-39: The next offsets are arranged so they're easier to understand. They are for facilities in the base:

/-----------------------------\
| 16 | 17 | 18 | 19 | 1A | 1B |
|-----------------------------|
| 1C | 1D | 1E | 1F | 20 | 21 |
|-----------------------------|
| 22 | 23 | 24 | 25 | 26 | 27 |
|-----------------------------|
| 28 | 29 | 2A | 2B | 2C | 2D |
|-----------------------------|
| 2E | 2F | 30 | 31 | 32 | 33 |
|-----------------------------|
| 34 | 35 | 36 | 37 | 38 | 39 |
\-----------------------------/

The possible values are as follows:

00 - Access Lift
01 - Living Quarters
02 - Laboratory
03 - Workshop
04 - Small Radar System
05 - Large Radar System
06 - Missile Defense
07 - General Stores
08 - Alien Containment
09 - Laser Defense
0A - Plasma Defense
0B - Fusion Ball Defense
0C - Grav Shield
0D - Mind Shield
0E - Psionic Laboratory
0F - Hyper-wave Decoder
10 - Hangar (Top Left)
11 - Hangar (Top Right)
12 - Hangar (Bottom Left)
13 - Hangar (Bottom Right)
FF - Empty

3A-5D: The next offsets represent the days until a facility is completed. They're set up the same way:

/-----------------------------\
| 3A | 3B | 3C | 3D | 3E | 3F |
|-----------------------------|
| 40 | 41 | 42 | 43 | 44 | 45 |
|-----------------------------|
| 46 | 47 | 48 | 49 | 4A | 4B |
|-----------------------------|
| 4C | 4D | 4E | 4F | 50 | 51 |
|-----------------------------|
| 52 | 53 | 54 | 55 | 56 | 57 |
|-----------------------------|
| 58 | 59 | 5A | 5B | 5C | 5D |
\-----------------------------/

Possible values are 00 to FF. Empty spaces must have a FF value in their corresponding offset.

The following are the rest of the offsets I know. There are holes in the numbering but I have no idea what they are. With the exception of scientists and technicians, which are one byte each, all values are 2-byte signed little-endian values (-32,768 to +32,767). Example: 05 00 should be read as 0005; FE FF should be read as FFFE (-2). Here's the info:

005E  Engineer
005F  Scientist
0060  Stingray Launcher
0062  Avalanche Launcher
0064  Cannon
0066  Fusion Ball Launcher
0068  Laser Cannon
006A  Plasma Beam
006C  Stingray Missile
006E  Avalanche Missile
0070  Cannon Rounds
0072  Fusion Balls
0074  Tank/Cannon
0076  Tank/Rocket Launcher
0078  Tank/Laser Cannon
007A  Hovertank/Plasma
007C  Hovertank/Launcher
007E  Pistol
0080  Pistol Clip
0082  Rifle
0084  Rifle Clip
0086  Heavy Cannon
0088  HC-AP Ammo
008A  HC-HE Ammo
008C  HC-IN Ammo
008E  Auto Cannon
0090  AC-AP Ammo
0092  AC-HE Ammo
0094  AC-IN Ammo
0096  Rocket Launcher
0098  Small Rocket
009A  Large Rocket
009C  Incendiary Rocket
009E  Laser Pistol
00A0  Laser Rifle
00A2  Heavy Laser
00A4  Grenade
00A6  Smoke Grenade
00A8  Proximity Grenade
00AA  High Explosive
00AC  Motion Scanner
00AE  Medi-Kit
00B0  Psi-Amp
00B2  Stun Rod
00B4  Electro Flare
00C2  Heavy Plasma
00C4  Heavy Plasma Clip
00C6  Plasma Rifle
00C8  Plasma Rifle Clip
00CA  Plasma Pistol
00CC  Plasma Pistol Clip
00CE  Blaster Launcher
00D0  Blaster Bomb
00D2  Small Launcher
00D4  Stun Bomb
00D6  Alien Grenade
00D8  Elerium-115
00DA  Mind Probe
00E2  Sectoid Corpse
00E4  Snakeman Corpse
00E6  Ethereal Corpse
00E8  Muton Corpse
00EA  Floater Corpse
00EC  Celatid Corpse
00EE  Silacoid Corpse
00F0  Chryssalid Corpse
00F2  Reaper Corpse
00F4  Sectopod Corpse
00F6  Cyberdisc Corpse
0100  UFO Power Source
0102  UFO Navigation
0104  UFO Construction
0106  Alien Food
0108  Alien Reproduction
010A  Alien Entertainment
010C  Alien Surgery
010E  Examination Room
0110  Alien Alloys
0112  Alien Habitat
0114  Personal Armour
0116  Power Suit
0118  Flying Suit
011A  HWP Cannon Shell
011C  HWP Rockets
011E  HWP Fusion Bomb

011F-0123: I have no idea, any help would be appreciated.

TFTD Structure

BASE.DAT: Each entry is 296 Bytes long.

00-0E: Base Name, pretty obvious.

0F: Null character if the Base Name uses all 15 characters. If this byte is non-0, the base name will happily overflow and read from the item quantities.

10-D3: Quantity of each item available at that base (signed 2-byte little-endian integers; see explanation in UFO section for details).

10  Ajax Launchers
12  D.U.P. Head Launcher
14  Craft Gas Cannon
16  P.W.T. Cannon
18  Gauss Cannon
1A  Sonic Oscillator
1C  Ajax Torpedoes
1E  D.U.P. Head Torpedoes
20  Gas Rounds(x50)
22  P.W.T Ammo
24  Coelacanth/G. Cannon
26  Coelacanth/Aqua Jet
28  Coelacanth/Gauss
2A  Displacer /Sonic
2C  Displacer /P. W. T.
2E  Dart Gun
30  Dart Clip
32  Jet Harpoon
34  Harpoon Clip
36  Gas Cannon
38  GC-AP Bolts
3A  GC-HE Bolts
3C  GC-Phosphorous Bolts
3E  Hydro-Jet Cannon
40  HJ-AP Ammo
42  HJ-HE Ammo
44  HJ-P Ammo
46  Torpedo Launcher
48  Small Torpedo
4A  Large Torpedo
4C  Phosphor Torpedo
4E  Gauss Pistol
50  Gauss Rifle
52  Heavy Gauss
54  Magna-Blast Grenade
56  Dye Grenade
58  Particle Disturbance Grenade
5A  Magna-Pack Explosive
5C  Particle Disturbance Sensor
5E  Medi-Kit
60  M.C. Disruptor
62  Thermal Tazer
64  Chemical-flare
66  Vibro Blade
68  Thermic Lance
6A  Heavy Thermic Lance
6C  (invalid - prints garbage if used)
6E  (invalid - prints garbage if used)
70  (invalid - prints garbage if used)
72  Sonic Cannon
74  Cannon Power Clip
76  Sonic-Blasta Rifle
78  Blasta Power Clip
7A  Sonic Pistol
7C  Pistol Power Clip
7E  Disruptor Pulse Launcher
80  Disruptor Ammo
82  Thermal Shok Launcher
84  Thermal Shok Bomb
86  Sonic Pulser
88  Zrbite
8A  M.C. Reader
8C  Gauss Pistol Clip
8E  Gauss Rifle Clip
90  Heavy Gauss Clip
92  Aquatoid Corpse
94  Gill Man Corpse
96  Lobster Man Corpse
98  Tasoth Corpse
9A  Calcinite Corpse
9C  Deep One Corpse
9E  Bio-Drone Corpse
A0  Tentaculat Corpse
A2  Triscene Corpse
A4  Hallucinoid Corpse
A6  Xarquid Corpse
A8  (invalid - prints ' Technician' if used)
AA  (invalid - prints ' Squad Leader' if used)
AC  (invalid - prints ' Soldier' if used)
AE  (invalid - prints ' Terrorist' if used)
B0  Ion-Beam Accelerators
B2  Magnetic Navigation
B4  Alien Sub Construction
B6  Alien Cryogenics
B8  Alien Cloning
BA  Alien Learning Arrays
BC  Alien Implanter
BE  Examination Room
C0  Aqua Plastics
C2  Alien Re-animation Zone
C4  Plastic Aqua Armour
C6  Ion Armour
C8  Mag. Ion Armour
CA  Solid Harpoon Bolts
CC  Aqua Jet Missiles
CE  P.W. Torpedo
D0  Gauss Cannon Ammo
D2  (invalid - prints 'Gauss Cannon Ammo' if used)

D4-D9: Unknown.

DA-FD: The next offsets are arranged so they're easier to understand. They are for facilities in the base:

/-----------------------------\
| DA | DB | DC | DD | DE | DF |
|-----------------------------|
| E0 | E1 | E2 | E3 | E4 | E5 |
|-----------------------------|
| E6 | E7 | E8 | E9 | EA | EB |
|-----------------------------|
| EC | ED | EE | EF | F0 | F1 |
|-----------------------------|
| F2 | F3 | F4 | F5 | F6 | F7 |
|-----------------------------|
| F8 | F9 | FA | FB | FC | FD |
\-----------------------------/

The possible values are as follows:

00 - Air Lock
01 - Living Quarters
02 - Laboratory
03 - Workshop
04 - Standard Sonar
05 - Wide Array Sonar
06 - Torpedo Defences
07 - General Stores
08 - Alien Containment
09 - Gauss Defences
0A - Sonic Defences
0B - P.W.T. Defences
0C - Bomb Shield
0D - M.C. Defences
0E - M.C.-Lab
0F - Transmission Resolver
10 - Sub Pen (Top Left)
11 - Sub Pen (Top Right)
12 - Sub Pen (Bottom Left)
13 - Sub Pen (Bottom Right)
FF - Empty

FE-121: The next offsets represent the days until a facility is completed. They're set up the same way:

/-----------------------------------\
|  FE |  FF | 100 | 101 | 102 | 103 |
|-----------------------------------|
| 104 | 105 | 106 | 107 | 108 | 109 |
|-----------------------------------|
| 10A | 10B | 10C | 10D | 10E | 10F |
|-----------------------------------|
| 110 | 111 | 112 | 113 | 114 | 115 |
|-----------------------------------|
| 116 | 117 | 118 | 119 | 11A | 11B |
|-----------------------------------|
| 11C | 11D | 11E | 11F | 120 | 121 |
\-----------------------------------/

Possible values are 00 to FF. Empty spaces must have a FF value in their corresponding offset.

0122: Number of technicians (00-FF).

0123: Number of scientists (00-FF).

0124-0127: Unknown.

See Also