Ejemplo n.º 1
0
        static Boolean ValidateArgs(CommandLine.ExtractArgs args)
        {
            Assert.IsNotNull(args, nameof(args));

            if (args.Game != Game.Ao)
            {
                return(false);
            }
            if (args.Format == GameFormat.None)
            {
                return(false);
            }
            if (args.Format == GameFormat.PSP && args.SourceIsoPath == "")
            {
                return(false);
            }
            if (args.Format == GameFormat.PC && args.GamePath == "")
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
        public static void Run(CommandLine.ExtractArgs args)
        {
            Assert.IsNotNull(args, nameof(args));

            if (ValidateArgs(args) == false)
            {
                return;
            }

            if (args.Format == GameFormat.PSP)
            {
                Console.WriteLine("Extracting text");
                Console.WriteLine($"Source ISO: {args.SourceIsoPath}");
                Console.WriteLine($"Translation Location: {args.TranslationPath}");
                Console.WriteLine();

                using (var iso = new Iso9660.IsoImage(args.SourceIsoPath))
                {
                    var filesystem = new IO.IsoFileSystem(iso, @"PSP_GAME\USRDIR");

                    Run(filesystem, Encodings.ShiftJIS, args.TranslationPath);
                }
            }

            if (args.Format == GameFormat.PC)
            {
                Console.WriteLine("Extracting text");
                Console.WriteLine($"Game Directory: {args.GamePath}");
                Console.WriteLine($"Translation Location: {args.TranslationPath}");
                Console.WriteLine();

                var filesystem = new IO.DirectoryFileSystem(args.GamePath);

                Run(filesystem, Encodings.Chinese, args.TranslationPath);
            }
        }