Example #1
0
 public ProgDat(string path, string pref, MainDat main)
 {
     this.filename = path + "/" + pref + "_prog.dat";
     if (!File.Exists(filename))
     {
         filename = path + "/" + pref + "_prog.eng";
     }
     if (!File.Exists(filename))
     {
         throw new Exception("prog not found");
     }
     this.main = main;
     process();
 }
Example #2
0
        void process()
        {
            main = new MainDat(path, prefix);
            string s = main.entry.ToString("X");

            main.dump(Path.GetDirectoryName(Application.ExecutablePath));
            textBox3.Text = s;
            progs         = new ProgDat(path, prefix, main);
            progs.dump(Path.GetDirectoryName(Application.ExecutablePath));
            comboBox1.Items.Clear();
            for (int i = 0; i < progs.progs.Count; i++)
            {
                comboBox1.Items.Add(i);
            }
        }
Example #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fd = new FolderBrowserDialog();

            if (fd.ShowDialog() == DialogResult.OK)
            {
                string pref = MainDat.search(fd.SelectedPath);
                if (pref != "")
                {
                    path          = fd.SelectedPath;
                    prefix        = pref;
                    textBox1.Text = path;
                    process();
                }
            }
        }
Example #4
0
        void process()
        {
            ofs = new uint[main.progcnt[0] + main.progcnt[1]];
            BinaryReader rd = new BinaryReader(new FileStream(filename, FileMode.Open, FileAccess.Read));
            int          t1 = main.progcnt[1];

            for (int i = 0; i < ofs.Length; i++)
            {
                ofs[i] = rd.ReadUInt32();
                long pofs = rd.BaseStream.Position;
                rd.BaseStream.Position = ofs[i];
                int len = rd.ReadInt16();
                if (len > 25000)
                {
                    throw new ApplicationException("Too large program " + len.ToString());
                }
                rd.BaseStream.Position -= 2;
                byte[] data = rd.ReadBytes(len);
                MainDat.descramble(data, 2);
                progs.Add(new OProg(data, rd.ReadBytes(0x10), i, (i < t1?0:1)));
                rd.BaseStream.Position = pofs;
            }
            rd.Close();
        }
Example #5
0
 public ProgDat(string path,string pref,MainDat main)
 {
     this.filename = path + "/" + pref + "_prog.dat";
     if (!File.Exists(filename))
         filename = path + "/" + pref + "_prog.eng";
     if (!File.Exists(filename))
         throw new Exception("prog not found");
        this.main = main;
        process();
 }
Example #6
0
 void process()
 {
     main = new MainDat(path,prefix);
     string s=main.entry.ToString("X");
     main.dump(Path.GetDirectoryName(Application.ExecutablePath));
     textBox3.Text = s;
     progs = new ProgDat(path, prefix, main);
     progs.dump(Path.GetDirectoryName(Application.ExecutablePath));
     comboBox1.Items.Clear();
     for (int i = 0; i < progs.progs.Count; i++)
         comboBox1.Items.Add(i);
 }