public static void Run(CommandLine.BuildArgs args)
        {
            Assert.IsNotNull(args, nameof(args));

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

            if (args.Format == GameFormat.PSP)
            {
                Console.WriteLine("Building ISO");
                Console.WriteLine($"Source ISO: {args.SourceIsoPath}");
                Console.WriteLine($"Destination ISO: {args.DestinationIsoPath}");
                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");

                    var datapath_eboot = Path.Combine(args.TranslationPath, "EBOOT.BIN");
                    if (File.Exists(datapath_eboot) == true)
                    {
                        Console.WriteLine(@"EBOOT.BIN");

                        UpdateEboot(iso, datapath_eboot);
                    }

                    Run(GameFormat.PSP, filesystem, Encodings.ShiftJIS, args.TranslationPath);

                    FixFileReferences(iso, filesystem);

                    iso.GetPrimaryVolumeDescriptor().VolumeSpaceSize = iso.GetHighestSectorUsed() + 1;

                    Console.WriteLine();
                    Console.WriteLine("Writing ISO.");

                    iso.Save(args.DestinationIsoPath);
                }
            }

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

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

                Run(GameFormat.PC, filesystem, Encodings.Chinese, args.TranslationPath);
            }
        }
Exemple #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);
            }
        }