Oodle decompression failed: not initialized
Describe the bug Oodle decompression failed: not initialized
Using Latest Version from Github.
Tool outputs 20:17:07 INF] Loading Game Archives... [20:17:07 INF] Pak "ProjectStorm-Windows.pak": 29917 files, order 3, version 11 in 00:00:00.0177257 [20:17:07 INF] IoStore "ProjectStorm-Windows.utoc": 31368 files, order 3, version 8 in 00:00:00.0332776 [20:17:07 WRN] Couldn't create GameFile reader CUE4Parse.Compression.OodleException: Oodle decompression failed: not initialized at CUE4Parse.Compression.OodleHelper.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, FArchive reader) at CUE4Parse.Compression.Compression.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, CompressionMethod method, FArchive reader) at CUE4Parse.UE4.Pak.PakFileReader.Extract(VfsEntry entry) at CUE4Parse.FileProvider.Objects.GameFile.TryCreateReader(FArchive& reader) [20:17:07 WRN] Couldn't create GameFile reader CUE4Parse.Compression.OodleException: Oodle decompression failed: not initialized at CUE4Parse.Compression.OodleHelper.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, FArchive reader) at CUE4Parse.Compression.Compression.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, CompressionMethod method, FArchive reader) at CUE4Parse.UE4.Pak.PakFileReader.Extract(VfsEntry entry) at CUE4Parse.FileProvider.Objects.GameFile.TryCreateReader(FArchive& reader) [20:17:07 WRN] Couldn't create GameFile reader CUE4Parse.Compression.OodleException: Oodle decompression failed: not initialized at CUE4Parse.Compression.OodleHelper.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, FArchive reader) at CUE4Parse.Compression.Compression.Decompress(Byte[] compressed, Int32 compressedOffset, Int32 compressedSize, Byte[] uncompressed, Int32 uncompressedOffset, Int32 uncompressedSize, CompressionMethod method, FArchive reader) at CUE4Parse.UE4.Pak.PakFileReader.Extract(VfsEntry entry) at CUE4Parse.FileProvider.Objects.GameFile.TryCreateReader(FArchive& reader) [20:17:07 INF] Packing Contents... [20:17:07 INF] Mounting ColorPicker.dll [20:17:07 WRN] Skipping Storm/Config/ColorPicker.dll because its not found in archives.
Expected behavior Create the GamePatch?
Game Name Project Storm (a working Name atm)
Your patch files Just tried to repack default files, nothing added or modified
download oodle dll from internet and put it in tool folder
There is a oodle file compiled with the Project, isnt that the correct one?
Which one is required, since Oodle.NET.dll / oo2core_9_win64.dll is in the Folder where UnrealReZen.exe is. It was compiled during build.
Command I am running: Might be an issue wieh UE5_5? I also updated NuGet UE4Parser to latest Version in hope for a fix, but it still tells me CUE4Parse.Compression.OodleException: Oodle decompression failed, as I wrote above files are present:
Oodle.NET.dll / oo2core_9_win64.dll
UnrealReZen.exe --content-path "I:/Output/Exports" --compression-format None --engine-version GAME_UE5_5 --game-dir "D:/SteamLibrary/steamapps/common/ProjectStorm/Storm/Content/Paks" --output-path "D:/SteamLibrary/steamapps/common/ProjectStorm/Storm/Content/Paks/ProjectStorm-Windows_P.utoc
Edit:
When I manually create the Instance again in the Code:
if (Instance is null) { Instance = new Oodle(NativeLibrary.Load("oo2core_9_win64.dll")); } if (Instance is null) { const string message = "Oodle decompression failed: not initialized"; if (reader is not null) throw new OodleException(reader, message); throw new OodleException(message); }
I get the following (Culture Error, I bypassed it), but then I get the Error that file not exists in Package.
23:33:18 INF] Pak "ProjectStorm-Windows.pak": 29917 files, order 3, version 11 in 00:00:00.0149718 [23:33:18 INF] IoStore "ProjectStorm-Windows.utoc": 31368 files, order 3, version 8 in 00:00:00.0272268 [23:33:18 INF] Trying to validate culture en [23:33:18 INF] Available cultures: [23:33:18 INF] Packing Contents... [23:33:18 INF] Mounting DefaultAnimation.ini [23:33:18 WRN] Skipping Storm/Config/DefaultAnimation.ini because its not found in archives. [23:33:18 INF] Mounting DefaultEditorPlaygamiConsoleCredentials.ini [23:33:18 WRN] Skipping Storm/Config/DefaultEditorPlaygamiConsoleCredentials.ini because its not found in archives. [23:33:18 INF] Mounting DefaultHitDetection.ini
Edit 2: (Sorry for edits, but trying to nail it down)
The Skipping Issue, is odd, because from what I see in your Script, you EXPECT a utoc File? However the Files it checks never have a UTOC, since its the Game Files?
Here is some part of the Log:
[23:59:23 INF] Checking file: Storm/Config/Windows/Custom/Steam/WindowsEngine.ini, Extension: .pak [23:59:23 INF] Extension mismatch for file: Storm/Config/Windows/Custom/Steam/WindowsEngine.ini [23:59:23 WRN] Skipping Storm/Config/Windows/Custom/Steam/WindowsEngine.ini because its not found in archives.
Log.Information("Mounting " + Path.GetFileName(filename)); foreach (var files in provider.Files.Values) { if (!files.Path.Contains("Config", StringComparison.OrdinalIgnoreCase)) continue; string fileExtension = Path.GetExtension(((AbstractVfsReader)((VfsEntry)files).Vfs).Name); Log.Information("Checking file: " + files.Path + ", Extension: " + fileExtension);
// Check for extension
bool extensionMatches = fileExtension == ".utoc";
if (!extensionMatches)
{
Log.Information("Extension mismatch for file: " + files.Path);
}
// Check for Path.Equals
bool pathMatches = files.Path.Equals(filename, StringComparison.CurrentCultureIgnoreCase);
if (!pathMatches)
{
Log.Information("Path mismatch for file: " + files.Path);
}
// Apply filter condition
if (extensionMatches && pathMatches)
{
Log.Information("File matches criteria: " + files.Path);
}
}
var filedata = provider.Files.Values.Where(a => Path.GetExtension(((AbstractVfsReader)((VfsEntry)a).Vfs).Name) == ".utoc" && a.Path.Equals(filename, StringComparison.OrdinalIgnoreCase)); if (filedata == null || !filedata.Any()) { Log.Warning("Skipping " + filename + " because its not found in archives."); continue; }
There is a oodle file compiled with the Project, isnt that the correct one?
Which one is required, since Oodle.NET.dll / oo2core_9_win64.dll is in the Folder where UnrealReZen.exe is. It was compiled during build.
Command I am running: Might be an issue wieh UE5_5? I also updated NuGet UE4Parser to latest Version in hope for a fix, but it still tells me CUE4Parse.Compression.OodleException: Oodle decompression failed, as I wrote above files are present:
Oodle.NET.dll / oo2core_9_win64.dll
UnrealReZen.exe --content-path "I:/Output/Exports" --compression-format None --engine-version GAME_UE5_5 --game-dir "D:/SteamLibrary/steamapps/common/ProjectStorm/Storm/Content/Paks" --output-path "D:/SteamLibrary/steamapps/common/ProjectStorm/Storm/Content/Paks/ProjectStorm-Windows_P.utoc
Edit:
When I manually create the Instance again in the Code:
if (Instance is null) { Instance = new Oodle(NativeLibrary.Load("oo2core_9_win64.dll")); } if (Instance is null) { const string message = "Oodle decompression failed: not initialized"; if (reader is not null) throw new OodleException(reader, message); throw new OodleException(message); }I get the following (Culture Error, I bypassed it), but then I get the Error that file not exists in Package.
23:33:18 INF] Pak "ProjectStorm-Windows.pak": 29917 files, order 3, version 11 in 00:00:00.0149718 [23:33:18 INF] IoStore "ProjectStorm-Windows.utoc": 31368 files, order 3, version 8 in 00:00:00.0272268 [23:33:18 INF] Trying to validate culture en [23:33:18 INF] Available cultures: [23:33:18 INF] Packing Contents... [23:33:18 INF] Mounting DefaultAnimation.ini [23:33:18 WRN] Skipping Storm/Config/DefaultAnimation.ini because its not found in archives. [23:33:18 INF] Mounting DefaultEditorPlaygamiConsoleCredentials.ini [23:33:18 WRN] Skipping Storm/Config/DefaultEditorPlaygamiConsoleCredentials.ini because its not found in archives. [23:33:18 INF] Mounting DefaultHitDetection.ini
Edit 2: (Sorry for edits, but trying to nail it down)
The Skipping Issue, is odd, because from what I see in your Script, you EXPECT a utoc File? However the Files it checks never have a UTOC, since its the Game Files?
Here is some part of the Log:
[23:59:23 INF] Checking file: Storm/Config/Windows/Custom/Steam/WindowsEngine.ini, Extension: .pak [23:59:23 INF] Extension mismatch for file: Storm/Config/Windows/Custom/Steam/WindowsEngine.ini [23:59:23 WRN] Skipping Storm/Config/Windows/Custom/Steam/WindowsEngine.ini because its not found in archives.
Log.Information("Mounting " + Path.GetFileName(filename)); foreach (var files in provider.Files.Values) { if (!files.Path.Contains("Config", StringComparison.OrdinalIgnoreCase)) continue; string fileExtension = Path.GetExtension(((AbstractVfsReader)((VfsEntry)files).Vfs).Name); Log.Information("Checking file: " + files.Path + ", Extension: " + fileExtension);
// Check for extension bool extensionMatches = fileExtension == ".utoc"; if (!extensionMatches) { Log.Information("Extension mismatch for file: " + files.Path); } // Check for Path.Equals bool pathMatches = files.Path.Equals(filename, StringComparison.CurrentCultureIgnoreCase); if (!pathMatches) { Log.Information("Path mismatch for file: " + files.Path); } // Apply filter condition if (extensionMatches && pathMatches) { Log.Information("File matches criteria: " + files.Path); }}
var filedata = provider.Files.Values.Where(a => Path.GetExtension(((AbstractVfsReader)((VfsEntry)a).Vfs).Name) == ".utoc" && a.Path.Equals(filename, StringComparison.OrdinalIgnoreCase)); if (filedata == null || !filedata.Any()) { Log.Warning("Skipping " + filename + " because its not found in archives."); continue; }
Can you send the finished file?