OpenNaja / cobra-tools

A suite of GUI tools for extracting and modifying OVL and OVS archives, as well as editing the associated in-house file formats. Also includes a model plugin for Blender. For downloads, guides, and FAQs visit:
https://opennaja.github.io/cobra-tools/
GNU General Public License v3.0
98 stars 28 forks source link

Malta DLC Broke Models again #287

Closed ilodev closed 1 year ago

ilodev commented 1 year ago

Describe the bug Seems the update broke the ms2 struct again, extraction is crashing

Log Files: C:...\GitHub\cobra-tools>python3 ovl_tool_gui.py INFO | Running python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSC v.1933 64 bit (AMD64)] INFO | Running imageio 2.21.1 INFO | Running cobra-tools 2.4.0, 8b89d49c - Mon Dec 5 16:29:10 2022 +0100 INFO | Found 4 Cobra games from Steam INFO | Setting current_game Jurassic World Evolution 2 INFO | Loading hash table... INFO | Loaded 856061 hash - name pairs in 0.95 seconds INFO | Loading threaded True INFO | Loading PropVehicle_Motorcycle.ovl INFO | Game: JURASSIC_WORLD_EVOLUTION_2 INFO | Loading archives INFO | Opening OVS streams INFO | Initialized OVS in 0.00 seconds INFO | Compressed stream Models_L0 in PropVehicle_Motorcycle.ovs.models_l0 starts at 0 INFO | Decompressed in 0.01 seconds INFO | Read decompressed stream in 0.00 seconds INFO | Mapping buffers INFO | Loading 14 files into gui INFO | Initialized OVS in 0.00 seconds INFO | Compressed stream Models_L1 in PropVehicle_Motorcycle.ovs.models_l1 starts at 0 INFO | Decompressed in 0.00 seconds INFO | Read decompressed stream in 0.00 seconds INFO | Mapping buffers INFO | Initialized OVS in 0.00 seconds INFO | Loaded files into GUI in 0.01 seconds INFO | Compressed stream STATIC in PropVehicle_Motorcycle.ovl starts at 1792 INFO | Decompressed in 0.00 seconds INFO | Read decompressed stream in 0.00 seconds INFO | Mapping buffers INFO | Initialized OVS in 0.00 seconds INFO | Compressed stream Textures_L0 in PropVehicle_Motorcycle.ovs.textures_l0 starts at 0 INFO | Decompressed in 0.00 seconds INFO | Read decompressed stream in 0.00 seconds INFO | Mapping buffers INFO | Initialized OVS in 0.00 seconds INFO | Compressed stream Textures_L1 in PropVehicle_Motorcycle.ovs.textures_l1 starts at 0 INFO | Decompressed in 0.00 seconds INFO | Read decompressed stream in 0.00 seconds INFO | Mapping buffers INFO | Closing OVS streams INFO | Loading pointers INFO | Prepared pointers in 0.00 seconds INFO | Loading file classes INFO | Detecting Biosyn format INFO | Detecting Biosyn format from .manis INFO | Detecting Biosyn format from pointers INFO | context.biosyn True INFO | Loaded file classes in 0.07 seconds INFO | Loaded archives in 0.08 seconds INFO | Loaded OVL in 0.12 seconds INFO | Dragging ['propvehiclemotorcycle.ms2'] INFO | Extracting from 14 files INFO | Detecting Biosyn format INFO | context.biosyn True INFO | Writing propvehiclemotorcycle.ms2 ERROR | An exception occurred while extracting propvehiclemotorcycle.ms2 Traceback (most recent call last): File "C:...\cobra-tools\generated\formats\ovl__init__.py", line 663, in extract ret_paths = loader.extract(out_dir_func) File "...\cobra-tools\modules\formats\MS2.py", line 263, in extract ptrs = set(wrapper.mesh.stream_info.frag.struct_ptr for model_info in self.header.model_infos.data for wrapper in model_info.meshes.data) File "...\cobra-tools\modules\formats\MS2.py", line 263, in ptrs = set(wrapper.mesh.stream_info.frag.struct_ptr for model_info in self.header.model_infos.data for wrapper in model_info.meshes.data) TypeError: 'NoneType' object is not iterable INFO | Tried to extract 1 files, got 1 errors

PAULINHO1111 commented 1 year ago

Pra mim também

SpinoKING99 commented 1 year ago

For some reason, i have the same problem too when I tried extracting the Atrociraptor. Hopefully the tools will be updated soon.

plsghislain commented 1 year ago

Hello, no way to open the Main.ovl file in Content0 with ovl_tool_gui.py (Jurassic World Evolution 2) I have the following error message in cobra-tools-master (updated):

INFO | Loading of Main.ovl INFO | Game: JURASSIC_WORLD_EVOLUTION_2 INFO | Loading of 171911 files in the gui INFO | Loading the archive INFO | Opening OVS streams INFO | Initialization of OVS in 0.00 seconds INFO | Models_L0 compressed stream in Main.ovs.models_l0 starts at 0 ERROR | Decompression of Models_L0 from G:/Steam/steamapps/common/Jurassic World Evolution 2/Win64/ovldata/Content0/Main.ovs.models_l0 failed. Traceback (most recent call) : File "G:\Games\JWE\cobra-tools-master\generated\formats\ovl__init.py", line 1007, in load_archives archive_entry.content.unzip(archive_entry, read_start) File "G:\Games\JWE\cobra-tools-master\generated\formats\ovl\init.py", line 145, in unzip with self.unzipper(compressed_bytes, archive_entry.uncompressed_size) as stream : File "G:\Python311\Lib\contextlib.py", line 137, in enter return next(self.gen) ^^^^^^^^^^^^^^ File "G:\Games\JWE\cobra-tools-master\generated\formats\ovl\init.py", line 74, in unzipper decompressed = oodle_compressor.decompress(compressed_bytes, len(compressed_bytes), uncompressed_size) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\Games\JWE\cobra-tools-masterovl_util\oodle.py", line 75, in decompressed raise Exception(f "Decompression failed ret={ret} output_size={output_size}") Exception: Decompression failed ret=0 output_size=107188 INFO | OVS initialization in 0.00 seconds INFO | STATIC compressed stream in Main.ovl starts at 15944728 INFO | Decompression in 0.27 seconds INFO | Loading files into GUI in 5.21 seconds INFO | Playback of decompressed stream in 77.59 seconds INFO | Buffer Mapping INFO | Closing OVS streams ERROR | Threaded call failed! Traceback (most recent call) : File "G:\Games\JWE\cobra-tools-masterovl_util\widgets.py", line 1397, in run self.func(*self.args, **self.kwargs) File "G:\Games\JWE\cobra-tools-master\generated\formats\l\init__.py", line 989, in load self.load_archives() File "G:\Games\JWE\cobra-tools-master\generated\formats\ovl\init.py", line 1014, in load_archives self.postprocessing() File "G:\Games\JWE\cobra-tools-master\generated\formats\ovl\init.py", line 1018, in postprocessing self.load_flattened_pools() File "G:\Games\JWE\cobra-tools-master\generated\formats\ovlinit__.py", line 1025, in load_flattened_pools assert len(archive.content.pools) == archive.num_pools ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError

Translated with www.DeepL.com/Translator (free version)

plsghislain commented 1 year ago

It has just had a game update to version 1.6.2 (from 12 december)! It works again. I can use cobra tools master on Main.ovl again. YES!

PAULINHO1111 commented 1 year ago

Quando Vai sair a atualização ALGUÉM SABE INFORMAR????

HENDRIX-ZT2 commented 1 year ago

New packed weights format reversed by @harlequinzeg0 Import into blender should be fine again. Export needs the inverse implementation

ilodev commented 1 year ago

Apparently exporting now doubles the size of model vertices

plsghislain commented 1 year ago

Hello, I edit only the c0dinosaurs.fdb file and for me, I have no problem to extract it and reinject it with the new version of the game 1.6.2. I'm a beginner amateur and I don't know how to change the models. I just change the stats of the dinosaurs. Have a nice day. Alain

ilodev commented 1 year ago

Thanks Alain, only a few of the files changed internally, fortunately for you fdbs were not affected.

harlequinzeg0 commented 1 year ago

Export is working again