Difference between revisions of "PROJECT.DAT"

From UFOpaedia
Jump to navigation Jump to search
(order of entries note)
Line 1: Line 1:
 
(<i>Zaimoni</i>: This records some working notes.  This should be reformatted more conventionally at some point.)
 
(<i>Zaimoni</i>: This records some working notes.  This should be reformatted more conventionally at some point.)
  
Assuming the usual "brute listing" representation, there is space allocated for 96 research projects at each base.  They are listed in the same order here, as in the game.
+
Presumed: common C enumeration of projects with [[RESEARCH.DAT]] (96 projects).
* each research project's scientist-days remaining is stored in a little-endian word (low-order byte first).  For realistic cases, the difference between signed word and unsigned word is irrelevant.  96 words i.e. 192 bytes.
+
* Each research project's scientist-days remaining is stored in a little-endian word (low-order byte first).  For realistic cases, the difference between signed word and unsigned word is irrelevant.  96 words i.e. 192 bytes.
* then each research project's scientists allocated is stored as a byte.  96 bytes.
+
* Then each research project's scientists allocated is stored as a byte.  96 bytes.
* each base thus uses 288 bytes to represent the current research project state.
+
* Each base thus uses 288 bytes to represent the current research project state.
  
 
A zero for scientist-days merely means that the project is not actively being researched.  It may have not been started, or have been completed.
 
A zero for scientist-days merely means that the project is not actively being researched.  It may have not been started, or have been completed.
Line 10: Line 10:
 
Project names are elsewhere.  Offsets are solely in hexadecimal for this iteration.  The first offset is for scientist-days, the second is for number of scientists allocated.
 
Project names are elsewhere.  Offsets are solely in hexadecimal for this iteration.  The first offset is for scientist-days, the second is for number of scientists allocated.
  
''Zaimoni: the order of projects is almost certainly going to match [[RESEARCH.DAT]], which I worked out previously.  The Live Alien entires correspond to [http://www.stonepool.com/xcom/hacking/astore.html ASTORE.DAT]: 6 Sectoids (Commander through Soldier), 6 Snakemen, etc., followed by 4 Terrorists (no Cyberdisc or Sectopod).--[[User:Ethereal Cereal|Ethereal Cereal]] (delete this note)''
+
''Zaimoni: the order of projects is almost certainly going to match [[RESEARCH.DAT]], which I worked out previously.  The Live Alien entires correspond to [http://www.stonepool.com/xcom/hacking/astore.html ASTORE.DAT]: 6 Sectoids (Commander through Soldier), 6 Snakemen, etc., followed by 4 Terrorists (no Cyberdisc or Sectopod).--[[User:Ethereal Cereal|Ethereal Cereal]]''
 +
 
 +
''That is mostly consistent, except that Sectoid Corpse starts "late" (5Ah rather than 58h).  There's a gap somewhere strictly between Heavy Laser and that. --[[User:Zaimoni|Zaimoni]] (delete these notes)''
  
 
Incomplete listing, in order, for the first base:
 
Incomplete listing, in order, for the first base:
Line 20: Line 22:
 
04h,C2h: Medikit
 
04h,C2h: Medikit
  
06h,C3h: ....
+
06h,C3h: Psi-Amp (inferred)
  
 
08h,C4h: Heavy Plasma
 
08h,C4h: Heavy Plasma
Line 34: Line 36:
 
12h,C9h: Plasma Pistol Clip
 
12h,C9h: Plasma Pistol Clip
  
14h,CAh: ....
+
14h,CAh: Blaster Launcher (inferred)
  
16h,CBh: ....
+
16h,CBh: Blaster Bomb (inferred)
  
18h,CCh: ....
+
18h,CCh: Stun Lanucher (inferred)
  
1Ah,CDh: ....
+
1Ah,CDh: Stun Bomb (inferred)
  
 
1Ch,CEh: Alien Grenade
 
1Ch,CEh: Alien Grenade
  
1Eh,CFh: ....
+
1Eh,CFh: Elerium-115 (inferred)
  
 
20h,D0h: Mind Probe
 
20h,D0h: Mind Probe
  
22h,D1h: ....
+
22h,D1h: UFO Power Source (inferred)
  
 
24h,D2h: UFO Navigation
 
24h,D2h: UFO Navigation
  
26h,D3h: ....
+
26h,D3h: UFO Construction (inferred)
  
28h,D4h: ....
+
28h,D4h: Alien Food (inferred)
  
2Ah,D5h: ....
+
2Ah,D5h: Alien Reproduction (inferred)
  
2Ch,D6h: ....
+
2Ch,D6h: Alien Entertainment (inferred)
  
2Eh,D7h: ....
+
2Eh,D7h: Alien Surgery (inferred)
  
30h,D8h: ....
+
30h,D8h: Examination Room (inferred)
  
 
32h,D9h: Alien Alloys
 
32h,D9h: Alien Alloys
  
34h,DAh: ....
+
34h,DAh: New Fighter (inferred)
  
36h,DBh: ....
+
36h,DBh: New Fighter-Transporter (inferred)
  
38h,DCh: ....
+
38h,DCh: Ultimate Craft (inferred)
  
3Ah,DDh: ....
+
3Ah,DDh: Laser Pistol (inferred)
  
3Ch,DEh: ....
+
3Ch,DEh: Laser Rifle (inferred)
  
 
3Eh,DFh: Heavy Laser
 
3Eh,DFh: Heavy Laser
  
40h,E0h: ....
+
40h,E0h: Laser Cannon (inferred)
  
42h,E1h: ....
+
42h,E1h: Plasma Cannon (inferred)
  
44h,E2h: ....
+
44h,E2h: Fusion Missile (Fusion Ball Launcher) (inferred)
  
46h,E3h: ....
+
46h,E3h: Laser Defense (inferred)
  
48h,E4h: ....
+
48h,E4h: Plasma Defense (inferred)
  
4Ah,E5h: ....
+
4Ah,E5h: Grav Shield (inferred)
  
4Ch,E6h: ....
+
4Ch,E6h: Mind Shield (inferred)
  
4Eh,E7h: ....
+
4Eh,E7h: Psionic Laboratory (inferred)
  
50h,E8h: ....
+
50h,E8h: Hyper-Wave Decoder (inferred)
  
52h,E9h: ....
+
52h,E9h: Tank/Laser Cannon (inferred, not used)
  
54h,EAh: ....
+
54h,EAh: Plasma Hovertank (inferred, not used)
  
56h,EBh: ....
+
56h,EBh: Launcher Hovertank (inferred, not used)
  
 
58h,ECh: ....
 
58h,ECh: ....
Line 106: Line 108:
 
5Ah,EDh: Sectoid Corpse
 
5Ah,EDh: Sectoid Corpse
  
5Ch,EEh: ....
+
5Ch,EEh: Snakeman Corpse (inferred)
  
5Eh,EFh: ....
+
5Eh,EFh: Ethereal Corpse (inferred)
  
60h,F0h: ....
+
60h,F0h: Muton Corpse (inferred)
  
 
62h,F1h: Floater Corpse
 
62h,F1h: Floater Corpse
  
64h,F2h: ....
+
64h,F2h: Celatid Corpse (inferred)
  
66h,F3h: ....
+
66h,F3h: Silacoid Corpse (inferred)
  
68h,F4h: ....
+
68h,F4h: Chryssalid Corpse (inferred)
  
6Ah,F5h: ....
+
6Ah,F5h: Reaper Corpse (inferred)
  
6Ch,F6h: ....
+
6Ch,F6h: Sectopod Corpse (inferred)
  
6Eh,F7h: ....
+
6Eh,F7h: Cyberdisc Corpse (inferred)
  
70h,F8h: ....
+
70h,F8h: Alien Origins (inferred)
  
72h,F9h: ....
+
72h,F9h: The Martian Solution (inferred)
  
74h,FAh: ....
+
74h,FAh: Cydonia or Bust (inferred)
  
76h,FBh: ....
+
76h,FBh: Personal Armor (inferred)
  
78h,FCh: ....
+
78h,FCh: Power Suit (inferred)
  
7Ah,FDh: ....
+
7Ah,FDh: Flying Suit (inferred)
  
7Ch,FEh: ....
+
7Ch,FEh: Sectoid Commander (inferred)
  
7Eh,FFh: ....
+
7Eh,FFh: Sectoid Leader (inferred)
  
80h,100h: ....
+
80h,100h: Sectoid Engineer (inferred)
  
82h,101h: ....
+
82h,101h: Sectoid Medic (inferred)
  
84h,102h: ....
+
84h,102h: Sectoid Navigator (inferred)
  
86h,103h: ....
+
86h,103h: Sectoid Soldier (inferred)
  
88h,104h: ....
+
88h,104h: Snakeman Commander (inferred)
  
8Ah,105h: ....
+
8Ah,105h: Snakeman Leader (inferred)
  
8Ch,106h: ....
+
8Ch,106h: Snakeman Engineer (inferred)
  
8Eh,107h: ....
+
8Eh,107h: Snakeman Medic (inferred)
  
90h,108h: ....
+
90h,108h: Snakeman Navigator (inferred)
  
92h,109h: ....
+
92h,109h: Snakeman Soldier (inferred)
  
94h,10Ah: ....
+
94h,10Ah: Ethereal Commander (inferred)
  
96h,10Bh: ....
+
96h,10Bh: Ethereal Leader (inferred)
  
98h,10Ch: ....
+
98h,10Ch: Ethereal Engineer (inferred, not used)
  
9Ah,10Dh: ....
+
9Ah,10Dh: Ethereal Medic (inferred, not used)
  
9Ch,10Eh: ....
+
9Ch,10Eh: Ethereal Navigator (inferred, not used)
  
9Eh,10Fh: ....
+
9Eh,10Fh: Ethereal Soldier (inferred)
  
A0h,110h: ....
+
A0h,110h: Muton Commander (inferred, not used)
  
A2h,111h: ....
+
A2h,111h: Muton Leader (inferred, not used)
  
A4h,112h: ....
+
A4h,112h: Muton Engineer (inferred)
  
A6h,113h: ....
+
A6h,113h: Muton Medic (inferred, not used)
  
A8h,114h: ....
+
A8h,114h: Muton Navigator (inferred)
  
AAh,115h: ....
+
AAh,115h: Muton Soldier (inferred)
  
ACh,116h: ....
+
ACh,116h: Floater Commander (inferred)
  
AEh,117h: ....
+
AEh,117h: Floater Leader (inferred)
  
B0h,118h: ....
+
B0h,118h: Floater Engineer (inferred)
  
B2h,119h: ....
+
B2h,119h: Floater Medic (inferred)
  
 
B4h,11Ah: Floater Navigator
 
B4h,11Ah: Floater Navigator
  
B6h,11Bh: ....
+
B6h,11Bh: Floater Soldier (inferred)
  
B8h,11Ch: ....
+
B8h,11Ch: Celatid (inferred)
  
BAh,11Dh: ....
+
BAh,11Dh: Silicoid (inferred)
  
BCh,11Eh: ....
+
BCh,11Eh: Chryssalid (inferred)
  
BEh,11Fh: ....
+
BEh,11Fh: Reaper (inferred)
<hr width="80%">
 
[<i>Zaimoni</i>: What happens if a Jan 1. 1999 savegame is hacked to have nonzero scientist-days for all projects?]
 

Revision as of 05:50, 12 August 2006

(Zaimoni: This records some working notes. This should be reformatted more conventionally at some point.)

Presumed: common C enumeration of projects with RESEARCH.DAT (96 projects).

  • Each research project's scientist-days remaining is stored in a little-endian word (low-order byte first). For realistic cases, the difference between signed word and unsigned word is irrelevant. 96 words i.e. 192 bytes.
  • Then each research project's scientists allocated is stored as a byte. 96 bytes.
  • Each base thus uses 288 bytes to represent the current research project state.

A zero for scientist-days merely means that the project is not actively being researched. It may have not been started, or have been completed.

Project names are elsewhere. Offsets are solely in hexadecimal for this iteration. The first offset is for scientist-days, the second is for number of scientists allocated.

Zaimoni: the order of projects is almost certainly going to match RESEARCH.DAT, which I worked out previously. The Live Alien entires correspond to ASTORE.DAT: 6 Sectoids (Commander through Soldier), 6 Snakemen, etc., followed by 4 Terrorists (no Cyberdisc or Sectopod).--Ethereal Cereal

That is mostly consistent, except that Sectoid Corpse starts "late" (5Ah rather than 58h). There's a gap somewhere strictly between Heavy Laser and that. --Zaimoni (delete these notes)

Incomplete listing, in order, for the first base:


00h,C0h: Laser weapons

02h,C1h: Motion Detector

04h,C2h: Medikit

06h,C3h: Psi-Amp (inferred)

08h,C4h: Heavy Plasma

0Ah,C5h: Heavy Plasma Clip

0Ch,C6h: Plasma Rifle

0Eh,C7h: Plasma Rifle Clip

10h,C8h: Plasma Pistol

12h,C9h: Plasma Pistol Clip

14h,CAh: Blaster Launcher (inferred)

16h,CBh: Blaster Bomb (inferred)

18h,CCh: Stun Lanucher (inferred)

1Ah,CDh: Stun Bomb (inferred)

1Ch,CEh: Alien Grenade

1Eh,CFh: Elerium-115 (inferred)

20h,D0h: Mind Probe

22h,D1h: UFO Power Source (inferred)

24h,D2h: UFO Navigation

26h,D3h: UFO Construction (inferred)

28h,D4h: Alien Food (inferred)

2Ah,D5h: Alien Reproduction (inferred)

2Ch,D6h: Alien Entertainment (inferred)

2Eh,D7h: Alien Surgery (inferred)

30h,D8h: Examination Room (inferred)

32h,D9h: Alien Alloys

34h,DAh: New Fighter (inferred)

36h,DBh: New Fighter-Transporter (inferred)

38h,DCh: Ultimate Craft (inferred)

3Ah,DDh: Laser Pistol (inferred)

3Ch,DEh: Laser Rifle (inferred)

3Eh,DFh: Heavy Laser

40h,E0h: Laser Cannon (inferred)

42h,E1h: Plasma Cannon (inferred)

44h,E2h: Fusion Missile (Fusion Ball Launcher) (inferred)

46h,E3h: Laser Defense (inferred)

48h,E4h: Plasma Defense (inferred)

4Ah,E5h: Grav Shield (inferred)

4Ch,E6h: Mind Shield (inferred)

4Eh,E7h: Psionic Laboratory (inferred)

50h,E8h: Hyper-Wave Decoder (inferred)

52h,E9h: Tank/Laser Cannon (inferred, not used)

54h,EAh: Plasma Hovertank (inferred, not used)

56h,EBh: Launcher Hovertank (inferred, not used)

58h,ECh: ....

5Ah,EDh: Sectoid Corpse

5Ch,EEh: Snakeman Corpse (inferred)

5Eh,EFh: Ethereal Corpse (inferred)

60h,F0h: Muton Corpse (inferred)

62h,F1h: Floater Corpse

64h,F2h: Celatid Corpse (inferred)

66h,F3h: Silacoid Corpse (inferred)

68h,F4h: Chryssalid Corpse (inferred)

6Ah,F5h: Reaper Corpse (inferred)

6Ch,F6h: Sectopod Corpse (inferred)

6Eh,F7h: Cyberdisc Corpse (inferred)

70h,F8h: Alien Origins (inferred)

72h,F9h: The Martian Solution (inferred)

74h,FAh: Cydonia or Bust (inferred)

76h,FBh: Personal Armor (inferred)

78h,FCh: Power Suit (inferred)

7Ah,FDh: Flying Suit (inferred)

7Ch,FEh: Sectoid Commander (inferred)

7Eh,FFh: Sectoid Leader (inferred)

80h,100h: Sectoid Engineer (inferred)

82h,101h: Sectoid Medic (inferred)

84h,102h: Sectoid Navigator (inferred)

86h,103h: Sectoid Soldier (inferred)

88h,104h: Snakeman Commander (inferred)

8Ah,105h: Snakeman Leader (inferred)

8Ch,106h: Snakeman Engineer (inferred)

8Eh,107h: Snakeman Medic (inferred)

90h,108h: Snakeman Navigator (inferred)

92h,109h: Snakeman Soldier (inferred)

94h,10Ah: Ethereal Commander (inferred)

96h,10Bh: Ethereal Leader (inferred)

98h,10Ch: Ethereal Engineer (inferred, not used)

9Ah,10Dh: Ethereal Medic (inferred, not used)

9Ch,10Eh: Ethereal Navigator (inferred, not used)

9Eh,10Fh: Ethereal Soldier (inferred)

A0h,110h: Muton Commander (inferred, not used)

A2h,111h: Muton Leader (inferred, not used)

A4h,112h: Muton Engineer (inferred)

A6h,113h: Muton Medic (inferred, not used)

A8h,114h: Muton Navigator (inferred)

AAh,115h: Muton Soldier (inferred)

ACh,116h: Floater Commander (inferred)

AEh,117h: Floater Leader (inferred)

B0h,118h: Floater Engineer (inferred)

B2h,119h: Floater Medic (inferred)

B4h,11Ah: Floater Navigator

B6h,11Bh: Floater Soldier (inferred)

B8h,11Ch: Celatid (inferred)

BAh,11Dh: Silicoid (inferred)

BCh,11Eh: Chryssalid (inferred)

BEh,11Fh: Reaper (inferred)