Difference between revisions of "SCUMM/Technical Reference/Index File"

Jump to navigation Jump to search
no edit summary
(→‎Conventions: sort table by SCUMM version. remove question marks.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[SCUMM/Technical Reference|SCUMM Technical Reference]] → ''SCUMM index file''
= Introduction =
 
 
= Introduction=


Most of the information below are retrieved from the [http://scumm.mixnmojo.com/?page=specs&file=indexfiles.txt LucasHacks!] site and from the Pascal source code of the ''IndexFileReader 1.2'' (written by Ben Gorman (Bgbennyboy, http://quick.mixnmojo.com). In addition, ''ScummRevisited'' (written by Jimmi Thøgersen (Serge), http://www.mixnmojo.com/scumm/scummrev) turned out to be very useful in verifying the found offsets.
Most of the information below are retrieved from the [http://scumm.mixnmojo.com/?page=specs&file=indexfiles.txt LucasHacks!] site and from the Pascal source code of the ''IndexFileReader 1.2'' (written by Ben Gorman (Bgbennyboy, http://quick.mixnmojo.com). In addition, ''ScummRevisited'' (written by Jimmi Thøgersen (Serge), http://www.mixnmojo.com/scumm/scummrev) turned out to be very useful in verifying the found offsets.
Line 47: Line 44:


{| border="1" cellspacing="0" cellpadding="4"
{| border="1" cellspacing="0" cellpadding="4"
|RNAM Room Names
|RM Room Names
|RM Room Names
|In V3/4
|In V3/4
Line 66: Line 62:
|In V3/4
|In V3/4
|-
|-
|RNAM Room Names
|In V5+
|In V5+
|-
|-
Line 95: Line 92:
|In V7
|In V7
|-
|-
|DRSC Direcory of Room Scripts
|DRSC Directory of Room Scripts
|In V8
|In V8
|}
|}


= Scumm 3/4 =
= SCUMM V0, V1 and V2 =
 
The index file is 00.LFL.
 
= SCUMM V3 and V4 =
 
The index file is 000.LFL.


* File's aren't xor'ed
* File's aren't xor'ed
Line 191: Line 194:
  State  =  (Owner+state Byte) AND 0x0F
  State  =  (Owner+state Byte) AND 0x0F


= Scumm 5 =
= SCUMM V5 =


* The files are xor'ed with 0x69
* The files are xor'ed with 0x69
Line 304: Line 307:
  kObjectClassUntouchable = 32
  kObjectClassUntouchable = 32


= Scumm 6 =
= SCUMM V6 =


* Files are xor'ed with 0x69
* Files are xor'ed with 0x69
Line 346: Line 349:
  Block Name (4 bytes)
  Block Name (4 bytes)
  Block Size (4 bytes BE)
  Block Size (4 bytes BE)
   #Stop (2 bytes) Stops if 0x0000
   #num (2 bytes) Stops if 0x0000
   #A (2 bytes)
   #a (2 bytes)
   #B (2 bytes)
   #b (2 bytes)
   #C   (2 bytes)
   #c   (2 bytes)
   
   
  num=AARY no (itinerate through in loop)
  read num
if c=1 then
if num != 0:
  AARY=(num, 1, a, b)
  read a, b, c
else
  if c == 1:
  AARY=(num, 1, a, b)
    defineArray(num, kBitArray, a, b)
  else:
    defineArray(num, kIntArray, a, b)


If stop=0 you dont seek past the 6 bytes of A,B,C you just start the loop again.
If num is 0, that marks the end of the AARY block, and there are no "a", "b", or "c" parameters afterwards.




= Scumm 7 =  
= SCUMM V7 =  


* Files aren't xor'ed
* Files aren't xor'ed
Line 389: Line 394:
  Costumes   (2 bytes)
  Costumes   (2 bytes)


== AARY ==
Mostly as in V6, except "Int" arrays are now "DWords".


== DROO,DSCR,DSOU,DCOS,DCHR,DOBJ,AARY ==
== DROO,DSCR,DSOU,DCOS,DCHR,DOBJ ==


All as in V5
All as in V6




Line 405: Line 413:




= Scumm 8 =
= SCUMM V8 =


== RNAM - Room Names ==
== RNAM - Room Names ==
Line 489: Line 497:




== DOBJ,AARY ==
== AARY ==
 
Mostly as in V7. AARY only has "a" and "b" parameters. "b" determines the order of the parameters when creating the array.
 
Block Name (4 bytes)
Block Size (4 bytes BE)
  #num (4 bytes) Stops if 0x00000000
  #a (4 bytes)
  #b (4 bytes)
 
while num != 0:
  read a and b
  if b != 0:
    defineArray(num, kIntArray, b, a)
  else:
    defineArray(num, kIntArray, a, b)
 
 
== DOBJ ==  


As in V7
As in V7.




[[Category: SCUMM Technical Reference]]
[[Category: SCUMM Technical Reference]]
35

edits

Navigation menu