public void Assemble(string version, ref BisAssembler bisAssembler, string path) { byte[] text = new byte[0x10] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; Encoding.UTF8.GetBytes(version).CopyTo(text, 0); header.Write(text); byte[] args = new byte[1]; args[0] = 0xF0; if (!Config.noExfat) args[0] += 0x01; header.Write(args); uint[] starts = new uint[4]; starts[0] = (uint)bisAssembler.boot0.bytes.Count; starts[1] = (uint)bisAssembler.boot1.bytes.Count; starts[2] = (uint)bisAssembler.bcpkg2_1.bytes.Count; starts[3] = (uint)bisAssembler.bcpkg2_3.bytes.Count; foreach(uint i in starts) { header.Write(ConvertInt(i)); } bytes.Write(header.bytes.ToArray()); bytes.Write(bisAssembler.boot0.bytes.ToArray()); bytes.Write(bisAssembler.boot1.bytes.ToArray()); bytes.Write(bisAssembler.bcpkg2_1.bytes.ToArray()); bytes.Write(bisAssembler.bcpkg2_3.bytes.ToArray()); bytes.DumpToFile(path); }
public BisFileAssembler(string version, ref BisAssembler bisAssembler, string path) { bytes = new ByteHolder(0x1200025); header = new ByteHolder(0x25); this.Assemble(version, ref bisAssembler, path); }