private static void Unpack(string output, List <byte> buffer, long offset) { var data = buffer.ToArray(); using (var ms = new MemoryStream(data)) { var name = output + $@"\{offset:X8}"; GCX.Unpack(ms, data.Length, name, offset); } }
private static void ExtractAllGCX() { var path = @"E:\Games\Metal Gear Solid\TS\DISC1\stage"; foreach (var file in Directory.GetFiles(path, "*.gcx", SearchOption.AllDirectories)) { using (var fs = File.OpenRead(file)) { GCX.Unpack(fs, (int)fs.Length, file, 0); } } path = @"E:\Games\Metal Gear Solid\TS\DISC2\stage"; foreach (var file in Directory.GetFiles(path, "*.gcx", SearchOption.AllDirectories)) { using (var fs = File.OpenRead(file)) { GCX.Unpack(fs, (int)fs.Length, file, 0); } } return; }