public static XEX Load(String path) { var fileStream = new FileStream(path, FileMode.Open); if (ReadUShort(fileStream) != 0xFFFF) { throw new ArgumentException(); } XEX result = new XEX();; do { ushort startAddress = ReadUShort(fileStream); if (startAddress == 0xFFFF) { // $FFFF - Indicates a binary load file. Mandatory for first segment, optional for any other segment startAddress = ReadUShort(fileStream); } ushort endAddress = ReadUShort(fileStream); result.Segments.Add(XEXSegment.Load(fileStream, startAddress, endAddress)); } while (fileStream.Position < fileStream.Length); return(result); }
private void GenerateRelease() { Compile(async() => { String ExomizerFullPath = Properties.Settings.Default["ExomizerFullPath"].ToString(); String EmulatorCommandLine = Properties.Settings.Default["EmulatorCommandLine"].ToString(); if (File.Exists(ExomizerFullPath)) { var maxAdr = XEX.Load(GetXEXFullPath()).GetMaxAdr() + 2; var arguments = $"sfx sys -x3 \"{GetXEXFullPath()}\" -Di_table_addr={maxAdr} -t 168 -o \"{GetPackedXEXFullPath()}\""; AddLine($"{Environment.NewLine}** {arguments} **{Environment.NewLine}", Color.Red); var processResult = await ProcessAsyncHelper.RunProcessAsync(ExomizerFullPath, arguments, -1, P_OutputDataReceived, p_ErrorDataReceived); // DialogResult = DialogResult.OK; } }); }