Skip to content

Commit e235061

Browse files
committed
Fix data sector not alignment bug.
1 parent 1bfa20b commit e235061

File tree

3 files changed

+64
-57
lines changed

3 files changed

+64
-57
lines changed

kautismSFOEditor/Form1.resx

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,15 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121+
<data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
122+
<value>0, 407</value>
123+
</data>
120124
<data name="&gt;&gt;installPKGToolStripMenuItem.Name" xml:space="preserve">
121125
<value>installPKGToolStripMenuItem</value>
122126
</data>
123127
<data name="&gt;&gt;listViewEx1.Type" xml:space="preserve">
124-
<value>ListViewEx.ListViewEx, kautismSFOEditor, Version=1.1.4.37147, Culture=neutral, PublicKeyToken=null</value>
128+
<value>ListViewEx.ListViewEx, kautismSFOEditor, Version=1.1.4.39758, Culture=neutral, PublicKeyToken=null</value>
125129
</data>
126130
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
127131
<data name="linkLabel2.AutoSize" type="System.Boolean, mscorlib">
@@ -145,10 +149,9 @@
145149
<data name="&gt;&gt;defaultSFOToolStripMenuItem.Type" xml:space="preserve">
146150
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
147151
</data>
148-
<data name="&gt;&gt;menuStrip1.ZOrder" xml:space="preserve">
149-
<value>5</value>
152+
<data name="&gt;&gt;toolStripMenuItem4.Name" xml:space="preserve">
153+
<value>toolStripMenuItem4</value>
150154
</data>
151-
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
152155
<data name="linkLabel1.Size" type="System.Drawing.Size, System.Drawing">
153156
<value>143, 12</value>
154157
</data>
@@ -164,6 +167,9 @@
164167
<data name="&gt;&gt;toolStripComboBox1.Name" xml:space="preserve">
165168
<value>toolStripComboBox1</value>
166169
</data>
170+
<data name="&gt;&gt;saveToolStripMenuItem.Type" xml:space="preserve">
171+
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
172+
</data>
167173
<data name="pToolStripMenuItem.Text" xml:space="preserve">
168174
<value>720p</value>
169175
</data>
@@ -176,9 +182,6 @@
176182
<data name="integerEditor.TabIndex" type="System.Int32, mscorlib">
177183
<value>5</value>
178184
</data>
179-
<data name="&gt;&gt;toolStripMenuItem4.Name" xml:space="preserve">
180-
<value>toolStripMenuItem4</value>
181-
</data>
182185
<data name="tab_Value.Text" xml:space="preserve">
183186
<value>Value</value>
184187
</data>
@@ -195,8 +198,8 @@
195198
<data name="&gt;&gt;menuStrip1.Type" xml:space="preserve">
196199
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
197200
</data>
198-
<data name="$this.Text" xml:space="preserve">
199-
<value>kautismSFOEditor</value>
201+
<data name="&gt;&gt;toolStripMenuItem2.Type" xml:space="preserve">
202+
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
200203
</data>
201204
<data name="&gt;&gt;linkLabel2.Name" xml:space="preserve">
202205
<value>linkLabel2</value>
@@ -210,17 +213,14 @@
210213
<data name="dolbyDigitalToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
211214
<value>192, 22</value>
212215
</data>
213-
<data name="lPCMToolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
214-
<value>192, 22</value>
215-
</data>
216216
<data name="audioToolStripMenuItem.Text" xml:space="preserve">
217217
<value>Audio</value>
218218
</data>
219219
<data name="&gt;&gt;menuStrip1.Parent" xml:space="preserve">
220220
<value>$this</value>
221221
</data>
222-
<data name="openFileDialog1.Filter" xml:space="preserve">
223-
<value>SFO檔案|*.sfo|所有檔案|*.*</value>
222+
<data name="&gt;&gt;stringEditor.ZOrder" xml:space="preserve">
223+
<value>2</value>
224224
</data>
225225
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
226226
<value>51, 20</value>
@@ -2426,26 +2426,26 @@
24262426
<data name="&gt;&gt;linkLabel1.ZOrder" xml:space="preserve">
24272427
<value>4</value>
24282428
</data>
2429-
<data name="tab_Value.Width" type="System.Int32, mscorlib">
2430-
<value>498</value>
2431-
</data>
24322429
<data name="lPCMToolStripMenuItem1.Text" xml:space="preserve">
24332430
<value>5.1 LPCM</value>
24342431
</data>
24352432
<data name="saveToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
24362433
<value>46, 20</value>
24372434
</data>
2438-
<data name="&gt;&gt;toolStripMenuItem2.Type" xml:space="preserve">
2439-
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
2435+
<data name="&gt;&gt;lPCMToolStripMenuItem.Name" xml:space="preserve">
2436+
<value>lPCMToolStripMenuItem</value>
2437+
</data>
2438+
<data name="&gt;&gt;menuStrip1.ZOrder" xml:space="preserve">
2439+
<value>5</value>
24402440
</data>
24412441
<data name="toolStripMenuItem3.Size" type="System.Drawing.Size, System.Drawing">
24422442
<value>110, 22</value>
24432443
</data>
24442444
<data name="&gt;&gt;integerEditor.Type" xml:space="preserve">
24452445
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
24462446
</data>
2447-
<data name="defaultSFOToolStripMenuItem.Text" xml:space="preserve">
2448-
<value>Set as default SFO program</value>
2447+
<data name="&gt;&gt;linkLabel2.ZOrder" xml:space="preserve">
2448+
<value>0</value>
24492449
</data>
24502450
<data name="&gt;&gt;listViewEx1.Name" xml:space="preserve">
24512451
<value>listViewEx1</value>
@@ -2471,6 +2471,9 @@
24712471
<data name="remotePlayToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
24722472
<value>213, 22</value>
24732473
</data>
2474+
<data name="linkLabel1.AutoSize" type="System.Boolean, mscorlib">
2475+
<value>True</value>
2476+
</data>
24742477
<data name="AttributeToolStripMenuItem.Text" xml:space="preserve">
24752478
<value>Attribute</value>
24762479
</data>
@@ -2504,20 +2507,14 @@
25042507
<data name="menuStrip1.TabIndex" type="System.Int32, mscorlib">
25052508
<value>2</value>
25062509
</data>
2507-
<data name="&gt;&gt;stringEditor.Name" xml:space="preserve">
2508-
<value>stringEditor</value>
2509-
</data>
25102510
<data name="&gt;&gt;stringEditor.Parent" xml:space="preserve">
25112511
<value>$this</value>
25122512
</data>
2513-
<data name="dolbyDigitalToolStripMenuItem.Text" xml:space="preserve">
2514-
<value>5.1 Dolby Digital</value>
2515-
</data>
25162513
<data name="&gt;&gt;toolStripMenuItem5.Name" xml:space="preserve">
25172514
<value>toolStripMenuItem5</value>
25182515
</data>
2519-
<data name="linkLabel1.Location" type="System.Drawing.Point, System.Drawing">
2520-
<value>0, 407</value>
2516+
<data name="&gt;&gt;stringEditor.Name" xml:space="preserve">
2517+
<value>stringEditor</value>
25212518
</data>
25222519
<data name="&gt;&gt;toolStripMenuItem3.Type" xml:space="preserve">
25232520
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
@@ -2537,8 +2534,11 @@
25372534
<data name="menuStrip1.Location" type="System.Drawing.Point, System.Drawing">
25382535
<value>0, 0</value>
25392536
</data>
2540-
<data name="linkLabel1.AutoSize" type="System.Boolean, mscorlib">
2541-
<value>True</value>
2537+
<data name="openFileDialog1.Filter" xml:space="preserve">
2538+
<value>SFO檔案|*.sfo|所有檔案|*.*</value>
2539+
</data>
2540+
<data name="$this.Text" xml:space="preserve">
2541+
<value>kautismSFOEditor</value>
25422542
</data>
25432543
<data name="lPCMToolStripMenuItem1.Size" type="System.Drawing.Size, System.Drawing">
25442544
<value>192, 22</value>
@@ -2579,6 +2579,9 @@
25792579
<data name="linkLabel2.Size" type="System.Drawing.Size, System.Drawing">
25802580
<value>233, 12</value>
25812581
</data>
2582+
<data name="dolbyDigitalToolStripMenuItem.Text" xml:space="preserve">
2583+
<value>5.1 Dolby Digital</value>
2584+
</data>
25822585
<data name="&gt;&gt;tab_Tag.Name" xml:space="preserve">
25832586
<value>tab_Tag</value>
25842587
</data>
@@ -2657,9 +2660,6 @@
26572660
<data name="stringEditor.Location" type="System.Drawing.Point, System.Drawing">
26582661
<value>399, 27</value>
26592662
</data>
2660-
<data name="&gt;&gt;stringEditor.ZOrder" xml:space="preserve">
2661-
<value>2</value>
2662-
</data>
26632663
<data name="stringEditor.Visible" type="System.Boolean, mscorlib">
26642664
<value>False</value>
26652665
</data>
@@ -2675,8 +2675,8 @@
26752675
<data name="&gt;&gt;listViewEx1.ZOrder" xml:space="preserve">
26762676
<value>3</value>
26772677
</data>
2678-
<data name="&gt;&gt;saveToolStripMenuItem.Type" xml:space="preserve">
2679-
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
2678+
<data name="tab_Value.Width" type="System.Int32, mscorlib">
2679+
<value>498</value>
26802680
</data>
26812681
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
26822682
<value>718, 419</value>
@@ -2717,8 +2717,8 @@
27172717
<data name="&gt;&gt;audioToolStripMenuItem.Name" xml:space="preserve">
27182718
<value>audioToolStripMenuItem</value>
27192719
</data>
2720-
<data name="&gt;&gt;lPCMToolStripMenuItem.Name" xml:space="preserve">
2721-
<value>lPCMToolStripMenuItem</value>
2720+
<data name="lPCMToolStripMenuItem2.Size" type="System.Drawing.Size, System.Drawing">
2721+
<value>192, 22</value>
27222722
</data>
27232723
<data name="&gt;&gt;integerEditor.Name" xml:space="preserve">
27242724
<value>integerEditor</value>
@@ -2738,8 +2738,8 @@
27382738
<data name="listViewEx1.Size" type="System.Drawing.Size, System.Drawing">
27392739
<value>718, 383</value>
27402740
</data>
2741-
<data name="&gt;&gt;linkLabel2.ZOrder" xml:space="preserve">
2742-
<value>0</value>
2741+
<data name="defaultSFOToolStripMenuItem.Text" xml:space="preserve">
2742+
<value>Set as default SFO program</value>
27432743
</data>
27442744
<data name="&gt;&gt;defaultSFOToolStripMenuItem.Name" xml:space="preserve">
27452745
<value>defaultSFOToolStripMenuItem</value>

kautismSFOEditor/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
// 您可以指定所有的值,也可以依照以下的方式,使用 '*' 將組建和修訂編號
3434
// 指定為預設值:
3535
// [assembly: AssemblyVersion("1.0.*")]
36-
[assembly: AssemblyVersion("1.1.4.*")]
37-
[assembly: AssemblyFileVersion("1.1.4.0")]
36+
[assembly: AssemblyVersion("1.2.0.*")]
37+
[assembly: AssemblyFileVersion("1.2.0.0")]
3838
[assembly: NeutralResourcesLanguage("en-US")]
3939

kautismSFOEditor/SFOParser.cs

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ public enum SFOType: byte
1313
Interge = 4
1414
};
1515

16+
private int alignment(int num, int aliment) {
17+
int tmp = (int)(num % aliment);
18+
if (tmp != 0) {
19+
return num + 4 - tmp;
20+
} else {
21+
return num;
22+
}
23+
}
24+
1625
PsfHdr psfHdr;
1726
PsfSec[] psfSec;
1827
Encoding encode = Encoding.UTF8;
@@ -90,18 +99,18 @@ public void saveSFO() {
9099
bw.BaseStream.Position = psfHdr.label_ptr;
91100
for (int i = 0; i < psfHdr.nsects; i++) {
92101
psfSec[i].label_off = (short)(bw.BaseStream.Position - psfHdr.label_ptr);
93-
char []charBuffer = new char[pairs[i].label.Length+1];
102+
int sz_label = pairs[i].label.Length + 1;
103+
//int sz_label = aliment(pairs[i].label.Length + 1, 4);
104+
char []charBuffer = new char[sz_label];
94105
Array.Copy(pairs[i].label.ToCharArray(), charBuffer, pairs[i].label.Length);
95106
bw.Write(charBuffer);
96107
}
97108

98-
// aline to 16byte
99-
int tmp = (int)(bw.BaseStream.Position % 16);
100-
if (tmp != 0) {
101-
psfHdr.data_ptr = (int)bw.BaseStream.Position + 16 - tmp;
109+
// aline to 4byte
110+
psfHdr.data_ptr = alignment((int)bw.BaseStream.Position, 4);
111+
while (psfHdr.data_ptr != bw.BaseStream.Position) {
112+
bw.Write('\0');
102113
}
103-
psfHdr.data_ptr = (int)bw.BaseStream.Position;
104-
105114
// write data set
106115
for (int i = 0, current_offset = 0; i < psfHdr.nsects; i++) {
107116
psfSec[i].data_off = current_offset;
@@ -121,14 +130,10 @@ public void saveSFO() {
121130
break;
122131
}
123132
psfSec[i].datafield_used = tmpBuffer.Length;
124-
125-
if (psfSec[i].datafield_size < psfSec[i].datafield_used) { // 對齊4byte
126-
tmp = (int)(psfSec[i].datafield_used % 4);
127-
if (tmp != 0) {
128-
psfSec[i].datafield_size = (int)psfSec[i].datafield_used + 4 - tmp;
129-
} else {
130-
psfSec[i].datafield_size = psfSec[i].datafield_used;
131-
}
133+
Console.WriteLine(psfSec[i].datafield_used + " " + encode.GetString(tmpBuffer) + "\n");
134+
if (psfSec[i].datafield_size < psfSec[i].datafield_used) {
135+
// 對齊4byte
136+
psfSec[i].datafield_size = alignment((int)psfSec[i].datafield_used, 4);
132137
}
133138

134139
char []clear_buf = new char[psfSec[i].datafield_size];
@@ -226,6 +231,8 @@ public void setValue(int index, string value) {
226231
}
227232

228233
public void setLabel(int index, string value) {
234+
//if (value[value.Length - 1] != 0)
235+
// value += '\0';
229236
pairs[index].label = value;
230237
}
231238

0 commit comments

Comments
 (0)