Example #1
0
        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);
        }
Example #2
0
        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;
                }
            });
        }