TLO

From Niotso Wiki
Jump to: navigation, search

TLO (short for Track Logic according to hitlab.ini) is a format used solely for Hitlab and not used ingame. Integers are little-endian.

Its format is as follows:

  • Reserved - 4 bytes set to zero
  • Instruction count - A 4-byte unsigned integer specifying the number of instructions defined in this TLO file


For each instruction:

  • Label - A Pascal string with a 4-byte little-endian length specifying a label for this instruction
  • Directive property filter - A 4-byte unsigned integer specifying the property filter for the directive, equal to one of the following values (defined in hitlab.ini):
ID Meaning
0 (none)
0x3d791c96 Object Var
0x7d791c98 Track Var
0x7d791c9b Global Var
0x5d79310f SourceOp
0xfd947ff5 DestOp
0xbd7bc31e Label
0xfd88aa02 Resource
  • Directive - A 4-byte unsigned integer specifying the directive, equal to one of the following values (defined in hitlab.ini):
ID Meaning
0xdd88fcf5 DO,SourceOp
0x1d850c0d IF,SourceOp
0x7d82add7 AND,SourceOp
0x1d82addc OR,SourceOp
0x7d82adde NOT,SourceOp
0xdd82ade0 ELSE,SourceOp
0x3d82ade3 THEN,SourceOp
0x1d82adec SET,SourceOp
0x9d87f2fb SMARTCHOOSE,SourceOp
0x3d947f02 SMARTINDEX,SourceOp
0xdd87f38f WAIT,SourceOp / WAIT,DestOp
  • Male Hitlist File ID - A 4-byte unsigned integer specifying the male hitlist ID
  • Female Hitlist File ID - A 4-byte unsigned integer specifying the female hitlist ID
  • Instruction property filter - 4-byte unsigned integer specifying the property filter for the instruction; the values are the same as those in the "Directive property filter" table
  • Instruction - A 4-byte unsigned integer specifying the instruction, equal to one of the following values (defined in hitlab.ini):
ID Meaning
0x5d82ade5 PLAYSND,DestOp
0x9d82ade8 STOPSND,DestOp
0x5d82adea KILLSND,DestOp
0x7d82adef END,DestOp
0x5d83b81a NOTEON,DestOp
0x7d8e2314 NOTEOFF,DestOp
0xbd83b963 WAITSAMP,DestOp
0xbd87f2ed SETLOOP,DestOp
0xbd87f2ef LOOP,DestOp
0xbd87f52f NOP,DestOp
0x5d87f2fd DUCK,DestOp
0xdd87f353 UNDUCK,DestOp
0xfd87f355 SEQWAIT,DestOp
0x1d87f359 SEQKILL,DestOp
0xdd87f528 SEQRETURN,DestOp
0x9d87f6af RETURN,DestOp
0x5d87f52d THROW,DestOp
0xdd87f2f8 SMARTSET,DestOp
0x5d87f6a8 CALLENTRYPOINT,DestOp
0xfd87f52c CALLBACK,DestOp
0x3d8e8726 PLAYNOTE,DestOp
0x7d8e8720 STOPNOTE,DestOp
0xbd8e8724 KILLNOTE,DestOp
0x7d87f2f2 TEST,SourceOp
0xdd87f2d9 IFLT,SourceOp
0xdd87f2e0 IFLE,SourceOp
0x1d87f2e4 IFGT,SourceOp
0xfd87f2e6 IFGE,SourceOp
0xbd87f2e8 IFEQ,SourceOp
0xdd87f2eb IFNE,SourceOp
  • Resource Type ID - A 4-byte unsigned integer specifying a class ID to handle the resource that follows, or 0 if no resource is supplied; should be one of the following (with names supplied from the Pre-Alpha constants table):
CLSID Meaning
0 (none)
0x2026960B GZRESID_cGZPersistStringResource
0x5D73A611 kGZCLSID_cHitTrackDef
0x7B1ACFCD kGZCLSID_cHitList
  • Resource Group ID - A 4-byte unsigned integer specifying the group ID of the resource, or 0 if no resource is supplied
  • Resource File ID - A 4-byte unsigned integer specifying the file ID of the resource, or 0 if no resource is supplied