-
Notifications
You must be signed in to change notification settings - Fork 12
/
5F_MIB2_Dataset_0x003B00.BIN.bt
103 lines (87 loc) · 3.33 KB
/
5F_MIB2_Dataset_0x003B00.BIN.bt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//------------------------------------------------
//--- 010 Editor v12.0 Binary Template
//
// File: 0x003B00.BIN
// Authors: Alex Strelets
// Version: 0.1
// Purpose: Parse the contents of the Sound Settings of MIB2
// Category:
// File Mask:
// ID Bytes:
// History: 0.1 - Initial version
//------------------------------------------------
// legend:
// yellow/aqua = uncertain
// red = checksum
// green = confirmed
// gray = seemingly irrelevant
// blue = special
typedef struct {
byte min <bgcolor=cDkGreen>;
byte center <bgcolor=cGreen>;
byte max <bgcolor=cLtGreen>;
} Knob;
struct {
byte min <bgcolor=cDkYellow>;
byte unknown <bgcolor=cYellow>;
byte max <bgcolor=cLtYellow>;
} VolumeBar;
struct {
Knob Balance;
Knob Fade;
Knob Treble;
Knob MidTreble;
Knob Middle;
Knob MidBass;
Knob Bass;
Knob Subwoofer;
} ToneControls;
string getEffect(int type) {
switch(type) {
case 1: return "All";
case 2: return "Driver";
case 4: return "Movie";
case 8: return "Front";
case 16: return "Back";
default: return "Unknown";
}
}
ubyte Clicks <bgcolor=cDkAqua>;
ubyte ToneBands <bgcolor=cAqua>;
// Looks like a bit mask to show 3 variations of Balance/Fade screen
// 00000001: Could be Balance bar only
// 00000010: Fade bar or submenu
// 00000100: Top-down view with free position movement by touch
// So, '7' (00000111) as a value enables them all
ubyte BalanceFadeControl <bgcolor=cLtAqua>;
ubyte FocusEffect1 <bgcolor=cDkAqua, read=getEffect>;
ubyte FocusEffect2 <bgcolor=cAqua, read=getEffect>;
struct {
ubyte value[19] <bgcolor=cDkGray>;
} UnknownGain;
FSeek(51);
struct {
char major <bgcolor=cDkBlue>;
char minor <bgcolor=cDkBlue>;
} DatasetVersion;
ushort checksum <bgcolor=cDkRed>;
local int i;
local int j;
Printf("\nVOLUME\n");
Printf("Bar:\t [%2g .. %2g .. %3g ]\n", VolumeBar.min, VolumeBar.unknown, VolumeBar.max);
Printf("\nKNOBS\n");
Printf("Balance:\t [%3g .. %1g .. %1g ]\n", ToneControls.Balance.min, ToneControls.Balance.center, ToneControls.Balance.max);
Printf("Fade:\t [%3g .. %1g .. %1g ]\n", ToneControls.Fade.min, ToneControls.Fade.center, ToneControls.Fade.max);
Printf("Treble:\t [%3g .. %1g .. %1g ]\n", ToneControls.Treble.min, ToneControls.Treble.center, ToneControls.Treble.max);
Printf("MidTreble:\t [%3g .. %1g .. %1g ]\n", ToneControls.MidTreble.min, ToneControls.MidTreble.center, ToneControls.MidTreble.max);
Printf("Middle:\t [%3g .. %1g .. %1g ]\n", ToneControls.Middle.min, ToneControls.Middle.center, ToneControls.Middle.max);
Printf("MidBass:\t [%3g .. %1g .. %1g ]\n", ToneControls.MidBass.min, ToneControls.MidBass.center, ToneControls.MidBass.max);
Printf("Bass:\t [%3g .. %1g .. %1g ]\n", ToneControls.Bass.min, ToneControls.Bass.center, ToneControls.Bass.max);
Printf("Subwoofer:\t [%3g .. %1g .. %1g ]\n", ToneControls.Subwoofer.min, ToneControls.Subwoofer.center, ToneControls.Subwoofer.max);
Printf("\nFocusing:\t [ %s\t> ]\n\t [ %s\t ]\n", getEffect(FocusEffect1), getEffect(FocusEffect2));
Printf("\nUNKNOWN GAIN\n");
for (j = 0; j < 19; j++) {
Printf("%4g ", UnknownGain.value[j]);
}
local int file_checksum = Checksum(CHECKSUM_CRCCCITT, 0, FileSize() - 2, -1, -1); // algo, size, length, poly, init
Printf("\n\nFILE CHECKSUM: %.04X", file_checksum);