diff --git a/Alcohol.bt b/Alcohol.bt index 48d7804..3147811 100644 --- a/Alcohol.bt +++ b/Alcohol.bt @@ -9,7 +9,7 @@ // File Mask: *.mds // ID Bytes: 4D 45 44 49 41 20 44 45 53 43 52 49 50 54 4F 52 // MEDIA DESCRIPTOR // History: -// 0.1 2018-01-08 Vasyl Tsvirkunov: Initial release +// 0.1 2018-01-08 Natalia Portillo: Initial release //------------------------------------------------ enum AlcoholMediumType diff --git a/BlindWrite4.bt b/BlindWrite4.bt new file mode 100644 index 0000000..87d2b25 --- /dev/null +++ b/BlindWrite4.bt @@ -0,0 +1,127 @@ +//------------------------------------------------ +//--- 010 Editor v8.0.1 Binary Template +// +// File: BlindWrite4.bt +// Authors: Natalia Portillo +// Version: 0.1 +// Purpose: BlindWrite 4 media descriptor. +// Category: Misc +// File Mask: *.bwt +// ID Bytes: 42 4C 49 4E 44 57 52 49 54 45 20 54 4F 43 20 46 49 4C 45 //BLINDWRITE TOC FILE +// History: +// 0.1 2018-01-08 Natalia Portillo: Initial release +//------------------------------------------------ + +enum Bw4TrackType +{ + Audio = 0, + Mode1 = 1, + Mode2 = 2 +}; + +typedef struct +{ + uint filenameLen; + if(filenameLen > 0) + char filename[filenameLen]; + uint offset; + ubyte subchannel; + byte unknown1[3]; + uint unknown2; + byte unknown3; + byte session; + byte unknown4; + byte CONTROL : 4; + byte ADR : 4; + byte unknown5; + Bw4TrackType trackMode; + byte unknown6; + byte point; + uint unknown7; + uint unknown8; + uint unknown9; + uint unknwon10; + ushort unknown11; + int lastSector; + byte unknown12; + int pregap; + int startSector; + uint unknown13[2]; + uint titleLen; + if(titleLen > 0) + char title[titleLen]; + uint performerLen; + if(performerLen > 0) + char performer[performerLen]; + uint unkString1Len; + if(unkString1Len > 0) + char unkString1[unkString1Len]; + uint unkString2Len; + if(unkString2Len > 0) + char unkString2[unkString2Len]; + uint unkString3Len; + if(unkString3Len > 0) + char unkString3[unkString3Len]; + uint unkString4Len; + if(unkString4Len > 0) + char unkString4[unkString4Len]; + uint discIdLen; + if(discIdLen > 0) + char discId[discIdLen]; + uint unkString5Len; + if(unkString5Len > 0) + char unkString5[unkString5Len]; + uint unkString6Len; + if(unkString6Len > 0) + char unkString6[unkString6Len]; + uint unkString7Len; + if(unkString7Len > 0) + char unkString7[unkString7Len]; + uint unkString8Len; + if(unkString8Len > 0) + char unkString8[unkString8Len]; + uint unkString9Len; + if(unkString9Len > 0) + char unkString9[unkString9Len]; + uint unkString10Len; + if(unkString10Len > 0) + char unkString10[unkString10Len]; + uint unkString11Len; + if(unkString11Len > 0) + char unkString11[unkString11Len]; + uint isrcLen; + if(isrcLen > 0) + char isrc[isrcLen]; +} BW4TrackDescriptor ; + +typedef struct +{ + char magic[19]; + uint unknown1; + uint64 timestamp; + uint volumeIdLen; + if(volumeIdLen > 0) + char volumeId[volumeIdLen]; + uint systemIdLen; + if(systemIdLen > 0) + char systemId[systemIdLen]; + uint commentsLen; + if(commentsLen > 0) + char comments[commentsLen]; + uint trackDescriptors; + uint datafileLen; + if(datafileLen > 0) + char datafile[datafileLen]; + uint subchannelfileLen; + if(subchannelfileLen > 0) + char subchannelFile[subchannelfileLen]; + uint unknown2; + ubyte unknown3Len; + if(unknown3Len > 0) + char unknown3[unknown3Len]; + if(trackDescriptors > 0) + BW4TrackDescriptor tracks[trackDescriptors]; +} BW4Header ; + +LittleEndian(); +BW4Header header; \ No newline at end of file