Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine(
                "{0}\r\n{1}\r\n\r\n{2}\r\n",
                $"CTR-Tools: howl - {Meta.GetSignature()}",
                "Extracts samples and music sequences from HOWL and BNK",
                Meta.GetVersion());

            if (args.Length == 0)
            {
                Console.WriteLine("Usage:\r\n\tExtract HWL:\thowl.exe C:\\example\\KART.HWL\r\n\tExtract BNK:\thowl.exe C:\\example\\01_canyon.bnk");
                return;
            }

            string filename = args[0];

            if (!File.Exists(filename))
            {
                Console.WriteLine($"{filename} doesn't exist.");
                return;
            }

            string basepath = Path.GetDirectoryName(filename);
            string name     = Path.GetFileNameWithoutExtension(filename);
            string ext      = Path.GetExtension(filename).ToLower();

            string path = Path.Combine(basepath, Path.GetFileNameWithoutExtension(filename));

            switch (ext)
            {
            case ".hwl":
                using (BinaryReaderEx br = new BinaryReaderEx(File.OpenRead(filename)))
                {
                    Howl hwl = Howl.FromReader(br);
                    Console.Write(hwl.ToString());

                    hwl.ExportCSEQ(path, br);
                    hwl.ExportAllSamples(path);

                    Console.WriteLine("Done!");
                }
                break;

            case ".bnk":
                Bank.ReadNames();
                Bank bnk = Bank.FromFile(filename);
                bnk.ExportAll(0, Path.Combine(basepath, name));
                break;

            case ".xnf":
                XaInfo xnf = XaInfo.FromFile(filename);
                Console.WriteLine(xnf.ToString());
                break;

            default:
                Console.WriteLine("Unsupported file.");
                break;
            }
        }
Пример #2
0
        public void LoadAudio(string filename)
        {
            try
            {
                switch (Path.GetExtension(filename).ToLower())
                {
                case ".xnf":
                    xnf = XaInfo.FromFile(filename);
                    break;

                default:
                    MessageBox.Show("Unsupported file.");
                    break;
                }

                UpdateUI();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }