Skip to content

Commit

Permalink
wem and bnk unknown file support and updated ER File List
Browse files Browse the repository at this point in the history
  • Loading branch information
Nordgaren committed Dec 9, 2022
1 parent 490bab3 commit d45c678
Show file tree
Hide file tree
Showing 3 changed files with 36,494 additions and 19,175 deletions.
4 changes: 2 additions & 2 deletions UXM/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.1.6")]
[assembly: AssemblyFileVersion("2.1.6")]
[assembly: AssemblyVersion("2.1.6.1")]
[assembly: AssemblyFileVersion("2.1.6.1")]
73 changes: 38 additions & 35 deletions UXM/Util.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,46 +144,49 @@ public static string GetExtensions(byte[] bytes)
{
BinaryReaderEx br = new BinaryReaderEx(false, bytes);

try
if (bytes.Length >= 3 && br.GetASCII(0, 3) == "GFX")
return ".gfx";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "FSB5")
return ".fsb";
if (bytes.Length >= 0x19 && br.GetASCII(0xC, 0xE) == "ITLIMITER_INFO")
return ".itl";
if (bytes.Length >= 0x10 && br.GetASCII(8, 8) == "FEV FMT ")
return ".fev";
if (bytes.Length >= 4 && br.GetASCII(1, 3) == "Lua")
return ".lua";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "DDS ")
return ".dds";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "#BOM")
return ".txt";
if (BND3.IsRead(bytes, out BND3 bnd3))
return $"{GetBNDExtensions(bnd3)}.bnd";
if (BND4.IsRead(bytes, out BND4 bnd4))
return $"{GetBNDExtensions(bnd4)}.bnd";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "BHF4")
return ".bhd";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "BDF4")
return ".bdt";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "RIFF")
return ".wem";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "BKHD")
return ".bnk";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "PSC ")
return ".pipelinestatecache";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "ENFL")
return ".entryfilelist";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "DCX\0")
{
if (bytes.Length >= 3 && br.GetASCII(0, 3) == "GFX")
return ".gfx";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "FSB5")
return ".fsb";
if (bytes.Length >= 0x19 && br.GetASCII(0xC, 0xE) == "ITLIMITER_INFO")
return ".itl";
if (bytes.Length >= 0x10 && br.GetASCII(8, 8) == "FEV FMT ")
return ".fev";
if (bytes.Length >= 4 && br.GetASCII(1, 3) == "Lua")
return ".lua";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "DDS ")
return ".dds";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "#BOM")
return ".txt";
if (BND3.IsRead(bytes, out BND3 bnd3))
return $"{GetBNDExtensions(bnd3)}.bnd";
if (BND4.IsRead(bytes, out BND4 bnd4))
return $"{GetBNDExtensions(bnd4)}.bnd";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "BHF4")
return ".bhd";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "BDF4")
return ".bdt";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "PSC ")
return ".pipelinestatecache";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "ENFL")
return ".entryfilelist";
if (bytes.Length >= 4 && br.GetASCII(0, 4) == "DCX\0")
try
{
byte[] decompressedBytes = DCX.Decompress(bytes);

return GetExtensions(decompressedBytes);
return $"{GetExtensions(decompressedBytes)}.dcx";
}
catch (EndOfStreamException)
{
return $"yabber-failed-to-read.dcx";
}

}
catch (EndOfStreamException)
{
return $"yabber-failed-to-read.dcx";
}


br.Stream.Close();
return ".unk";
Expand Down

0 comments on commit d45c678

Please sign in to comment.