コード例 #1
0
        public static byte[] CorruptByte(byte[] ROM, CorruptionOptions CorruptOption, long i)
        {
            switch (CorruptOption)
            {
            case CorruptionOptions.RANDOM:
                ROM[i] = (byte)rnd.Next(0, 256);
                Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                break;

            case CorruptionOptions.RANDOMTILT:
                switch (rnd.Next(0, 3))
                {
                case 0:
                    ROM[i] = (byte)((byte)rnd.Next(0, 256) % (Byte.MaxValue + 1));
                    Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                    break;

                case 1:
                    int NewValue = (int)((ROM[i] + Program.Form.objForm2.IncreDecrenumbnightmare.Value) % (byte.MaxValue + 1));
                    ROM[i] = (byte)Math.Abs(NewValue);
                    Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                    break;

                case 2:

                    NewValue = (int)((ROM[i] - Program.Form.objForm2.IncreDecrenumbnightmare.Value) % (byte.MaxValue + 1));
                    ROM[i]   = (byte)Math.Abs(NewValue);
                    Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                    break;

                default:
                    MessageBox.Show("Default case hit on Nightmare Engine!");
                    break;
                }
                break;

            case CorruptionOptions.TILT:
                switch (rnd.Next(0, 2))
                {
                case 0:
                    int NewValue = (int)((ROM[i] + Program.Form.objForm2.IncreDecrenumbnightmare.Value) % (byte.MaxValue + 1));
                    ROM[i] = (byte)Math.Abs(NewValue);
                    Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                    break;

                case 1:
                    NewValue = (int)((ROM[i] + Program.Form.objForm2.IncreDecrenumbnightmare.Value) % (byte.MaxValue + 1));
                    ROM[i]   = (byte)Math.Abs(NewValue);
                    Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                    break;
                }
                break;

            default:
                MessageBox.Show("Nightmare Engine returned default. This should not happen.");
                break;
            }
            return(ROM);
        }
コード例 #2
0
        public static byte[] CorruptByte(byte[] ROM, byte[] ROMMerge, CorruptionOptions CorruptionOption, long i)
        {
            if (Program.Form.objForm2.ReplaceByteWithSamePos.Checked)
            {
                if (Program.Form.objForm2.Mod256MergeEnginechkbox.Checked)
                {
                    switch (CorruptionOption)
                    {
                    case CorruptionOptions.NONE:
                        ROM[i] = (byte)(ROMMerge[i] % Byte.MaxValue + 1);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    case CorruptionOptions.RANGE:
                        ROM[i] = (byte)Math.Abs(ROM[i] - ROMMerge[i] % byte.MaxValue + 1);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    default:
                        MessageBox.Show("Merge Engine returned default. This should not happen.");
                        break;
                    }
                }
                else
                {
                    switch (CorruptionOption)
                    {
                    case CorruptionOptions.NONE:
                        ROM[i] = ROMMerge[i];
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    case CorruptionOptions.RANGE:
                        ROM[i] = (byte)Math.Abs(ROM[i] - ROMMerge[i]);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    default:
                        MessageBox.Show("Merge Engine returned default. This should not happen.");
                        break;
                    }
                }
            }
            else
            {
                if (Program.Form.objForm2.Mod256MergeEnginechkbox.Checked)
                {
                    switch (CorruptionOption)
                    {
                    case CorruptionOptions.NONE:
                        ROM[i] = (byte)(ROMMerge[rnd.Next(0, ROMMerge.Length)] % Byte.MaxValue + 1);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    case CorruptionOptions.RANGE:
                        ROM[i] = (byte)Math.Abs(ROM[rnd.Next(0, ROMMerge.Length)] - ROMMerge[i] % byte.MaxValue + 1);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    default:
                        MessageBox.Show("Merge Engine returned default. This should not happen.");
                        break;
                    }
                }
                else
                {
                    switch (CorruptionOption)
                    {
                    case CorruptionOptions.NONE:
                        ROM[i] = ROMMerge[rnd.Next(0, ROMMerge.Length)];
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    case CorruptionOptions.RANGE:
                        ROM[i] = (byte)Math.Abs(ROM[i] - ROMMerge[rnd.Next(0, ROMMerge.Length)]);
                        Program.Form.StashItems.Add("[x] File(" + i + ").SET(" + ROM[i] + ")");
                        break;

                    default:
                        MessageBox.Show("Merge Engine returned default. This should not happen.");
                        break;
                    }
                }
            }

            return(ROM);
        }