TT_SRPT
This table contains pointers to all the titles on the disk, and is indexed by
VMG_TTN (title number within VMG)
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of titles | reserved | end address (last byte of last entry) |
8... | 12-byte entries |
each entry
Offset | size | Contents |
0 | 1 | title type - see below |
1 | 1 | number of angles |
2 | 2 | number of chapters (PTTs) |
4 | 2 | parental management mask |
6 | 1 | Video Title Set number, VTSN |
7 | 1 | title number within VTS, VTS_TTN |
8 | 4 | start sector for VTS, referenced to whole disk (video_ts.ifo starts at sector 00000000) |
breakdown of Title Type
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
reserved | 0=one_sequential_pgc 1=not one_sequential (random, shuffle, stills, loops, or more than one pgc) |
Jump/Link/Call commands 0000 None 0101 only in pre/post
1001 only in cell 1011 in button (and cell) 1111 in all places
all other values are invalid |
Uop1 PTT play or search | Uop0 Time play or search |
cell/button | pre/post | button | exist |
|
VMGM_PGCI_UT
The VMGM_PGCI_UT contains a number of tables forming a heirarchy. Most entries are 8 bytes long.
  VMGM_PGCI_UT   |
  | VMGM_LU |   |
  |   | VMGM_PGC |   |   |
  | : |   |
  |   | VMGM_PGC |   |   |
: |
  | VMGM_LU |   |
  |   | VMGM_PGC |   |   |
  | : |   |
  |   | VMGM_PGC |   |   |
At the top is the VMGM_PGCI_UT which lists all the Language Units.
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of Language Units | reserved | end address (last byte of last PGC in last LU) relative to VMGM_PGCI_UT |
8 | ISO639 language code | reserved for language code extension | Menu existence flag 80 = title |
offset to VMGM_LU, relative to VMGM_PGCI_UT |
10 ... | possible additional entries |
Next, the VMGM_LU which lists all the Program Chains.
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of Program Chains | reserved | end address (last byte of last PGC in this LU) relative to VMGM_LU |
8 | PGC category, see below | offset to VMGM_PGC, relative to VMGM_LU |
10 ... | possible additional entries |
breakdown of the PGC category
byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 1=entry PGC | reserved | menu type (entry only) 2 = title |
1 |   |
2 | parental management mask |
3 | parental management mask |
On to PGC description
|
VMG_PTL_MAIT
This table contains 16-bit masks for each title set in each of 8 parental levels, for each
country code.
VMG_PTL_MAIT |
  | PTL_MAIT |   |
  | : |   |
  | PTL_MAIT |   |
|
|
VMG_PTL_MAIT
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | number of countries | number of title sets (Nts) | end address (last byte of last PTL_MAIT) |
8 | country code |   | offset to PTL_MAIT |   |
10 ... | possible additional entries |
|
The VMG_PTL_MAIT is searched by country, and points to the table for each country. |
PTL_MAIT
offset | contents |
0 | Nts+1 16-bit masks (VMG + all title sets) for level 8 |
2*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 7 |
4*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 6 |
6*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 5 |
8*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 4 |
10*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 3 |
12*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 2 |
14*(Nts+1) | Nts+1 16-bit masks (VMG + all title sets) for level 1 |
|
The PTL_MAIT contains the 16-bit masks for the VMG and all title sets for parental management
level 8 followed by the masks for level 7, and so on to level 1. |
|
VMG_VTS_ATRT
This table contains copies of the menu and title attributes of all title sets.
VMG_VTS_ATRT |
  | VTS_ATRT |   |
  | : |   |
  | VTS_ATRT |   |
VMG_VTS_ATRT
offset | 0 | 1 | 2 | 3 |
0 | number of title sets |   |
4 | end address (last byte of last VTS_ATRT) |
8 | offset to VTS_ATRT 1 |
C ... | possible additional entries |
VTS_ATRT
offset | size | contents |
0 | 4 | end address (EA) |
4 | 4 | VTS_CAT (copy of offset 022-025 of the VTS IFO file)   0=unspecified, 1=Karaoke |
8 | EA-7 | copy of VTS attributes (offset 100 and on from the VTS IFO file, usually 0x300 bytes long) |
|