Exemple #1
0
        /// <summary>
        /// Patch app file to map D-Pad directions. This assumes the app file is decompressed.
        /// </summary>
        /// <param name="config">D-Pad configuration</param>
        /// <param name="VCDir">VC directory</param>
        private static void PatchApp1(DPadConfig config, string VCDir)
        {
            using (var app1 = new BeBinaryWriter(File.OpenWrite(Path.Combine(VCDir, "00000001.app"))))
            {
                var used    = config.InUse;
                var buttons = new VCControllerButton[]
                {
                    VCControllerButton.DPadUp,
                    VCControllerButton.DPadDown,
                    VCControllerButton.DPadLeft,
                    VCControllerButton.DPadRight,
                };

                // Fix array for ordering of the fields in app file: Up, Down, Left, Right
                used = new bool[] { used[0], used[2], used[3], used[1] };

                for (int i = 0; i < used.Length; i++)
                {
                    int offset = DPAD_MAPPING_OFFSET + (i * 4);
                    app1.Seek(offset, SeekOrigin.Begin);

                    if (used[i])
                    {
                        // If using this D-Pad direction, write its button flag
                        app1.WriteUInt32((uint)buttons[i]);
                    }
                    else
                    {
                        // Otherwise write the button flag for the L button
                        app1.WriteUInt32((uint)VCControllerButton.L);
                    }
                }
            }
        }
Exemple #2
0
        public DPadForm(DPadPreset[] presets, DPadItem[] items, DPadConfig config)
        {
            _presets = presets;
            _items   = items;
            _custom  = config.Pad.Values;

            InitializeComponent();
            Initialize(config);
        }
Exemple #3
0
        /// <summary>
        /// Initialize.
        /// </summary>
        /// <param name="config">Configuration</param>
        private void Initialize(DPadConfig config)
        {
            // Initialize presets
            foreach (var preset in _presets)
            {
                PresetComboBox.Items.Add(preset);
            }
            PresetComboBox.Items.Add("Custom");

            // Initialize items
            foreach (var combo in ItemComboBoxes)
            {
                foreach (var item in _items)
                {
                    combo.Items.Add(item);
                }
            }

            // Try to infer which preset to select based on current values
            var inferred = InferPreset();

            if (inferred != null)
            {
                PresetComboBox.SelectedItem = inferred;
            }
            else
            {
                PresetComboBox.SelectedItem = "Custom";
            }

            // Set enabled/disabled based on current state
            if (config.State == DPadState.Enabled)
            {
                EnabledCheckBox.Checked = true;
            }
            else
            {
                EnabledCheckBox.Checked = false;
            }

            // Initialize the display groupbox
            if (config.Display != DPadDisplay.Right)
            {
                DPadDisplayLeftRadioButton.Checked = true;
            }
            else
            {
                DPadDisplayRightRadioButton.Checked = true;
            }
            DPadHideCheckBox.Checked = (config.Display == DPadDisplay.None);

            UpdatePresetComboBox();
            UpdateItemComboBoxes();
            UpdateDisplayGroupBox();
        }
Exemple #4
0
        public static void BuildVC(byte[] ROM, DPadConfig dpadConfig, string VCDir, string FileName)
        {
            ROM = AddVCHeader(ROM);
            GetApp5(ROM, VCDir);
            PatchApp1(dpadConfig, VCDir);
            ProcessStartInfo p = new ProcessStartInfo
            {
                FileName         = "wadpacker",
                Arguments        = "mm.tik mm.tmd mm.cert \"" + FileName + "\" -i NMRE",
                WorkingDirectory = VCDir,
                UseShellExecute  = true,
            };

            Process.Start(p);
        }
Exemple #5
0
        /// <summary>
        /// Initialize.
        /// </summary>
        /// <param name="config">Configuration</param>
        private void Initialize(DPadConfig config)
        {
            // Initialize presets
            foreach (var preset in _presets)
            {
                PresetComboBox.Items.Add(preset);
            }
            PresetComboBox.Items.Add("Custom");

            // Initialize items
            foreach (var combo in ItemComboBoxes)
            {
                foreach (var item in _items)
                {
                    combo.Items.Add(item);
                }
            }

            // Try to infer which preset to select based on current values
            var inferred = InferPreset();

            if (inferred != null)
            {
                PresetComboBox.SelectedItem = inferred;
            }
            else
            {
                PresetComboBox.SelectedItem = "Custom";
            }

            // Set enabled/disabled based on current state
            if (config.State == DPadState.Enabled)
            {
                EnabledCheckBox.Checked = true;
            }
            else
            {
                EnabledCheckBox.Checked = false;
            }

            UpdatePresetComboBox();
            UpdateItemComboBoxes();
        }