//------------------------------------------------ //--- 010 Editor v8.0.1 Binary Template // // File: BlindWrite5.bt // Authors: Natalia Portillo // Version: 0.1 // Purpose: BlindWrite 5 media descriptor. // Category: Misc // File Mask: *.b5t // ID Bytes: 42 57 54 35 20 53 54 52 45 41 4D 20 53 49 47 4E //BWT5 STREAM SIGN // History: // 0.1 2018-01-08 Natalia Portillo: Initial release //------------------------------------------------ typedef struct { uint type; uint length; uint unknown1[4]; uint offset; uint unknown2[3]; int startLba; int sectors; uint filenameLen; if(filenameLen > 0) wchar_t filename[filenameLen/2]; uint unknown3; } BW5DataFile ; enum BW5TrackType { NotData = 0, Audio = 1, Mode1 = 2, Mode2 = 3, Mode2F1 = 4, Mode2F2 = 5, Dvd = 6 }; enum BW5SubchannelType { None = 0, Q16 = 2, Linear = 4 }; typedef struct { BW5TrackType type; uchar unknown1[3]; uint unknown2; BW5SubchannelType subchannel; byte unknown3; byte CONTROL; byte ADR; byte POINT; byte TNO; byte AMIN; byte ASEC; byte AFRAME; byte PHOUR : 4; byte AHOUR : 4; byte PMIN; byte PSEC; byte PFRAME; byte unknown5; uint pregap; uint unknown6[4]; int startLba; int sectors; uint unknown7[2]; uint session; ushort unknown8; if(type != Dvd && type != NotData) uint unknown9[2]; } BW5TrackDescriptor ; typedef struct { ushort sequence; byte entries; byte unknown; int start; int end; ushort firstTrack; ushort lastTrack; if(entries > 0) BW5TrackDescriptor tracks[entries]; } BW5Session ; typedef struct { char magic[16]; uint unknown1[8]; ushort profile; ushort sessions; uint unknown2[3]; byte validMcn; char mcn[13]; ushort unknown3; uint unknown4[4]; ushort pmaLen; ushort atipLen; ushort cdtextLen; ushort cdinfoLen; uint bcaLen; uint unknown5[3]; uint dvdstructuresLen; uint dvdinfoLen; char unknown6[32]; char manufacturer[8]; char product[16]; char revision[4]; char vendor[20]; char volumeId[32]; uint mode2ALen; uint unknownBlockLen; uint dataLen; uint sessionsLen; uint dpmLen; if(mode2ALen > 0) uchar mode2A[mode2ALen]; if(unknownBlockLen > 0) uchar unknownBlock[unknownBlockLen]; if(pmaLen > 0) uchar pma[pmaLen]; if(atipLen > 0) uchar atip[atipLen]; if(cdtextLen > 0) uchar cdtext[cdtextLen]; if(bcaLen > 0) uchar bca[bcaLen]; if(dvdstructuresLen > 0) uchar dvdstructures[dvdstructuresLen]; if(dvdinfoLen > 0) uchar dvdinformation[dvdinfoLen]; else if(cdinfoLen > 0) uchar cdinformation[dvdinfoLen]; uint dataBlockCount; uint dataPathLen; wchar_t dataPath[dataPathLen/2]; BW5DataFile dataBlocks[dataBlockCount]; BW5Session session[sessions]; if(dpmLen > 0) uchar dpm[dpmLen]; uint unknown7; char footer[16]; } BW5Header ; LittleEndian(); BW5Header header;