Exemplo n.º 1
0
            internal void CheckValidSettings()
            {
                UpdateStatus("Checking Settings...");
                var hasSourceNAND = (SourceNANDData != null && !string.IsNullOrEmpty(SourceNANDPath));

                if (!hasSourceNAND)
                {
                    if (SpareType == SpareType.Auto || HackType == ECCType.RGH2)
                    {
                        throw new InvalidOperationException("Your settings are incomplete or unsupported");
                    }
                }
                if (SourceNANDData == null)
                {
                    NANDParser.Source = SourceNANDPath;
                }
                if (SpareType == SpareType.Auto)
                {
                    UpdateStatus("Checking Spare Type...");
                    SpareType = SourceNANDData != null?NANDParser.GetSpareType(ref SourceNANDData) : NANDParser.GetSpareType(SourceNANDPath);
                }

                if (TargetSMCData == null || string.IsNullOrEmpty(TargetSMCPath) && !hasSourceNAND)
                {
                    throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or SMCDATA/Path to SMC File");
                }
                if (TargetSMCData == null)
                {
                    UpdateStatus("Grabbing SMC Data...");
                    if (!string.IsNullOrEmpty(TargetSMCPath))
                    {
                        TargetCBAData = File.ReadAllBytes(TargetSMCPath);
                    }
                    else if (SourceNANDData == null)
                    {
                        TargetSMCData = NANDParser.GrabData(NANDParser.NANDParts.SMC);
                    }
                    else
                    {
                        TargetSMCData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.SMC);
                    }
                }

                #region CB_A and CB_B

                if (!hasSourceNAND && TargetCBAData == null && string.IsNullOrEmpty(TargetCBAPath) && HackType != ECCType.RGX)
                {
                    if (HackType == ECCType.RGH1)
                    {
                        throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB DATA/Path to CB File");
                    }
                    throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB_A DATA/Path to CB_A File");
                }
                UpdateStatus(HackType == ECCType.RGH1 ? "Grabbing CB Data..." : "Grabbing CB_A Data...");
                if (TargetCBAData == null && !string.IsNullOrEmpty(TargetCBAPath) && HackType != ECCType.RGX)
                {
                    TargetCBAData = File.ReadAllBytes(TargetCBAPath);
                }
                else if (HackType == ECCType.RGX)
                {
                    UpdateStatus("Using Built in MFG CB_A");
                    TargetCBAData = GetBuiltInData("CBMFG");
                }
                else if (SourceNANDData == null)
                {
                    TargetCBAData = NANDParser.GrabData(NANDParser.NANDParts.CBA);
                }
                else
                {
                    TargetCBAData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.CBA);
                }
                if (HackType != ECCType.RGH1)
                {
                    if (TargetCBBData == null && string.IsNullOrEmpty(TargetCBBPath))
                    {
                        throw new InvalidOperationException("Your settings are incomplete or unsupported (You must etheir supply a source nand or CB_B DATA/Path to CB_B File");
                    }
                    if (TargetCBBData == null)
                    {
                        UpdateStatus("Grabbing CB_B Data...");
                        if (TargetCBBData == null && !string.IsNullOrEmpty(TargetCBBPath))
                        {
                            TargetCBBData = File.ReadAllBytes(TargetCBBPath);
                        }
                        else if (SourceNANDData == null)
                        {
                            TargetCBBData = NANDParser.GrabData(NANDParser.NANDParts.CBB);
                        }
                        else
                        {
                            TargetCBBData = NANDParser.GrabData(ref SourceNANDData, NANDParser.NANDParts.CBB);
                        }
                    }
                }

                #endregion CB_A and CB_B

                #region CD

                UpdateStatus("Grabbing CD Data...");
                if (TargetCDData == null && !string.IsNullOrEmpty(TargetCDPath))
                {
                    TargetCDData = File.ReadAllBytes(TargetCDPath);
                }
                if (TargetCDData == null && string.IsNullOrEmpty(TargetCDPath))
                {
                    UpdateStatus("Using Built in CD");
                    TargetCDData = GetBuiltInData("CD");
                }
                #endregion CD

                #region XeLL

                UpdateStatus("Grabbing XeLL Data...");
                if (TargetXeLLData == null && !string.IsNullOrEmpty(TargetXeLLPath))
                {
                    TargetCDData = File.ReadAllBytes(TargetXeLLPath);
                }
                else if (TargetXeLLData == null && string.IsNullOrEmpty(TargetXeLLPath))
                {
                    UpdateStatus("Using Built in XeLL");
                    TargetXeLLData = GetBuiltInData("XELL");
                }

                #endregion XeLL
            }
Exemplo n.º 2
0
            // ReSharper restore MemberCanBeInternal
            // ReSharper restore UnassignedField.Global

            public ECCArgs(ECCType hackType = ECCType.Auto, SpareType spareType = SpareType.Auto) : this()
            {
                SpareType = spareType;
                HackType  = hackType;
            }