- [Core] Added Blb file parsing [GI]

This commit is contained in:
Razmoth
2023-09-19 13:22:50 +04:00
parent a7e7cb7702
commit dbec3e254e
7 changed files with 282 additions and 65 deletions

View File

@@ -16,6 +16,7 @@ namespace AssetStudio
private static readonly byte[] zipMagic = { 0x50, 0x4B, 0x03, 0x04 };
private static readonly byte[] zipSpannedMagic = { 0x50, 0x4B, 0x07, 0x08 };
private static readonly byte[] mhy0Magic = { 0x6D, 0x68, 0x79, 0x30 };
private static readonly byte[] blbMagic = { 0x42, 0x6C, 0x62, 0x02 };
private static readonly byte[] narakaMagic = { 0x15, 0x1E, 0x1C, 0x0D, 0x0D, 0x23, 0x21 };
private static readonly byte[] gunfireMagic = { 0x7C, 0x6D, 0x79, 0x72, 0x27, 0x7A, 0x73, 0x78, 0x3F };
@@ -84,6 +85,11 @@ namespace AssetStudio
return FileType.Mhy0File;
}
Logger.Verbose($"Parsed signature does not match with expected signature {Convert.ToHexString(mhy0Magic)}");
if (blbMagic.SequenceEqual(magic))
{
return FileType.BlbFile;
}
Logger.Verbose($"Parsed signature does not match with expected signature {Convert.ToHexString(mhy0Magic)}");
magic = ReadBytes(7);
Position = 0;
Logger.Verbose($"Parsed signature is {Convert.ToHexString(magic)}");
@@ -195,7 +201,7 @@ namespace AssetStudio
break;
}
}
if (reader.FileType == FileType.BundleFile && game.Type.IsBlockFile())
if (reader.FileType == FileType.BundleFile && game.Type.IsBlockFile() || reader.FileType == FileType.BlbFile)
{
Logger.Verbose("File might have multiple bundles !!");
try