UABEA icon indicating copy to clipboard operation
UABEA copied to clipboard

Applying EMIP to compressed bundle

Open ibaios opened this issue 2 years ago • 4 comments

Hi, I have used emip files to replace text assets in *.assets files many times thanks to UABEA. But now I have a data.unity3d bundle file that is compressed, and even if I create the EMIP file without problems (or at least without errors), when I try to apply the EMIP, I get an error like this:

uabea crash exception (please report this crash with uabeacrash.log) System.IO.IOException: Not a directory : '/home/deck/.steam/steam/steamapps/common/SIGNALIS/SIGNALIS_Data/data.unity3d/resources.assets' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at UABEAvalonia.CommandLineHandler.ApplyEmip(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/CommandLineHandler.cs:line 318 at UABEAvalonia.CommandLineHandler.CLHMain(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/CommandLineHandler.cs:line 369 at UABEAvalonia.Program.Main(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/Program.cs:line 47 Unhandled exception. System.IO.IOException: Not a directory : '/home/deck/.steam/steam/steamapps/common/SIGNALIS/SIGNALIS_Data/data.unity3d/resources.assets' at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at UABEAvalonia.CommandLineHandler.ApplyEmip(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/CommandLineHandler.cs:line 318 at UABEAvalonia.CommandLineHandler.CLHMain(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/CommandLineHandler.cs:line 369 at UABEAvalonia.Program.Main(String[] args) in /home/runner/work/UABEA/UABEA/UABEAvalonia/Program.cs:line 47 Aborted (core dumped)

It seems that it treats the bundle file as if it was a directory. I have tried with an uncompressed bundle too, but I get the same result.

Am I doing something wrong? Is it possible to apply EMIP files to *.unity3d bundles?

I am using the sixth release for Ubuntu.

Thank you in advance,

ibaios avatar Jul 12 '23 22:07 ibaios

Bundle emips aren't supported. I never finished support for emip because I'm planning on making a different format that's more resilient to game updates.

nesrak1 avatar Jul 13 '23 00:07 nesrak1

Thank you for the quick reply! While the new format is created, is there any way to uncompress/compress bundles and extract/import assets to the bundle without user interaction? Can it be done using a terminal command or maybe with a small program? Is there any documentation about this?

Thank you a lot!

ibaios avatar Jul 13 '23 12:07 ibaios

For the time being, you can write a program to patch the bundle with AssetsTools.NET which is what UABEA uses or UnityPy which is a Python library that can do similar to patch the bundle.

nesrak1 avatar Jul 13 '23 14:07 nesrak1

Great! Thanks for the help!

ibaios avatar Jul 13 '23 19:07 ibaios