Sector0F

A sector on the player that stores various information.

Record structure

uint16[6] Unknowns
uint8[228] Filler1
uint16 Unknown1
uint16 FirstFree
uint16 LastBlock
uint16 Unknown2
uint16 Unknown3
uint16 FATSectorCount
uint8[260] Filler2

Field descriptions

Unknowns

Unknown, apparently constant, values: 0x073B 0x07BE 0x07C3 0x0D8E 0x0E49 0x0F8E

Filler1

Unknown, apparently constant. Filled with 0x0FF.

Unknown1

Unknown, apparently constant. Value 0x0AA00.

FirstFree

The FAT element number of the first free block.

LastBlock

The FAT element number of the last block. Total memory on the player = (LastBlock + 1)*0x0210*64
A better way to calcuate the amount of memory is to iterate through the FAT entries and see which have NextBlock != 0x0FFFF.

Unknown2

Unknown, apparently constant. Value 0x5555.

Unknown3

Unknown, apparently constant. Value 0.

FATSectorCount

The number of (512 byte) sectors holding the FAT table. This could also be the starting sector number of the FAT table. Usually 0x10.

Filler2

Unknown, apparently constant. Filled with 0x55.

Record declaration

C
typedef struct SECTOR0FTAG {
  uint16  Unknowns[6];
  uint8   Filler1[228];
  uint16  Unknown1;
  uint16  FirstFree;
  uint16  LastBlock;
  uint16  Unknown2;
  uint16  Unknown3;
  uint16  FATSectorCount;
  uint8   Filler2[260];
} SECTOR0F;

Pascal
TBlock0F = packed record
  Unknowns        : array[0..5] of uint16;
  Filler1         : array[0..227] of uint8;
  Unknown1        : uint16;
  FirstFree       : uint16;
  LastBlock       : uint16;
  Unknown2        : uint16;
  Unknown3        : uint16;
  FATSectorCount  : uint16;
  Filler2         : array[0..259] of uint8;
end;