private void SelectDialogueFileButton_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog fd = new OpenFileDialog())
            {
                fd.RestoreDirectory = true;

                //fd.InitialDirectory = @"D:\Program Files (x86)\ePSXe\Games\DigimonWorld2\Extracted\AAA\4.AAA";
                fd.Filter           = "Bin files (.bin)|*.bin";
                fd.RestoreDirectory = true;

                if (fd.ShowDialog() == DialogResult.OK)
                {
                    var filePath = fd.FileName;

                    var fileStream = fd.OpenFile();

                    byte[] arr;
                    using (BinaryReader reader = new BinaryReader(fileStream))
                    {
                        using MemoryStream memoryStream = new MemoryStream();
                        reader.BaseStream.CopyTo(memoryStream);
                        arr = memoryStream.ToArray();
                    }

                    string result = $"File: {filePath}\n\n";
                    result += TextConversion.MessageFileToString(arr);


                    DialogueOutputRichTextbox.Text = result;
                }
            }
        }
        private void ExportAllMessFilesButton_Click(object sender, EventArgs e)
        {
            string targetDirCity = $"{AppDomain.CurrentDomain.BaseDirectory}Output\\MESS\\City";

            if (!Directory.Exists(targetDirCity))
            {
                Directory.CreateDirectory(targetDirCity);
            }

            string targetDirDung = $"{AppDomain.CurrentDomain.BaseDirectory}Output\\MESS\\Dung";

            if (!Directory.Exists(targetDirDung))
            {
                Directory.CreateDirectory(targetDirDung);
            }

            string sourceDirCityMess = @"D:\Program Files (x86)\EmulatorsAndRomhacking\ePSXe\Games\DigimonWorld2\Extracted\AAA\4.AAA\CITY\MESS";
            string sourceDirDungMess = @"D:\Program Files (x86)\EmulatorsAndRomhacking\ePSXe\Games\DigimonWorld2\Extracted\AAA\4.AAA\DUNG\MESS";

            foreach (var file in Directory.GetFiles(sourceDirCityMess))
            {
                byte[] arr;
                using (BinaryReader reader = new BinaryReader(File.Open(file, FileMode.Open)))
                {
                    using MemoryStream memoryStream = new MemoryStream();
                    reader.BaseStream.CopyTo(memoryStream);
                    arr = memoryStream.ToArray();
                }

                var result = TextConversion.MessageFileToString(arr);

                string filename = file.Substring(file.LastIndexOf("\\"), file.Length - file.LastIndexOf("\\"));
                filename = filename.Replace(".BIN", ".txt");
                string targetPath = targetDirCity + filename;

                File.WriteAllText(targetPath, result);
            }

            foreach (var file in Directory.GetFiles(sourceDirDungMess))
            {
                byte[] arr;
                using (BinaryReader reader = new BinaryReader(File.Open(file, FileMode.Open)))
                {
                    using MemoryStream memoryStream = new MemoryStream();
                    reader.BaseStream.CopyTo(memoryStream);
                    arr = memoryStream.ToArray();
                }

                var result = TextConversion.MessageFileToString(arr);

                string filename = file.Substring(file.LastIndexOf("\\"), file.Length - file.LastIndexOf("\\"));
                filename = filename.Replace(".BIN", ".txt");
                string targetPath = targetDirDung + filename;

                File.WriteAllText(targetPath, result);
            }
        }